أبو وليد قام بنشر فبراير 28, 2005 قام بنشر فبراير 28, 2005 (معدل) اردت المساعدة في كيفية تحويل النموذج من انجليزي الى عربي والعكس من مثال أوقات الصلاة حاولت اقتباس الفكرة ولم استطع المهم ما عرفته هو ان التسمية الاخرى تكتب في tag واخذت كود التحويل واريد بعض المساعده فيه Private Sub SetLang() Dim ctl As Control Dim TempCaption As String ' If Me.Lang.Caption = "English" Then sLang = "Eng" Else sLang = "Arb" TempCaption = Me.Caption Me.Caption = Me.Tag Me.Tag = TempCaption For Each ctl In Me With ctl ' Change Form Left 2 Right Or Rigth 2 Left .Left = Me.Width - (.Left + .Width) ' كيف تتم حسابات اليمين واليسار ' Change Language 4 LabelBox And TextAlign If .ControlType = acLabel Then If Not .Name Like "[gp]0*" Then .TextAlign = GetTextAlign(.TextAlign)' الكود وقف هنا لماذا؟؟؟ If .Tag <> "" Then TempCaption = .Caption .Caption = .Tag .Tag = TempCaption End If End If ' Change Language 4 TextBox If .ControlType = acTextBox Then TempCaption = .Format .Format = .Tag .Tag = TempCaption .TextAlign = GetTextAlign(.TextAlign) End If ' Show Language Colum If .ControlType = acComboBox Then If sLang = "Arb" Then .ColumnWidths = "0;567;0" If sLang = "Eng" Then .ColumnWidths = "0;0;567" ' ماذا تعني هذه الارقام .Requery End If End With Next ctl Call GetCityInf Call fDate(mDate) End Sub ولو امكن شرح كامل الكود فجزاكم الله خيرا تم تعديل فبراير 28, 2005 بواسطه أبو وليد
الدكتور خضر الرجبي قام بنشر فبراير 28, 2005 قام بنشر فبراير 28, 2005 السلام عليكم أخي ابا الوليد ، بارك الله فيك أولا : لا أنصحك بإستخدام الكود أعلاه لأن به أمور متعددة وضعت لأهداف خاصة بذلك البرنامج. ثانيا: قمت بتصميم مثالاً لك خصيصا ، تستطيع استخدام الطريقة التي فيه ، للتحويل بين لغتين مع أي نموذج وقد وضحت فيه الخطوات اللازمة بالترتيب. مع الاحترام ChangeLanguageExample.rar 1
أبو وليد قام بنشر فبراير 28, 2005 الكاتب قام بنشر فبراير 28, 2005 لا ادري ماذا اقول لك الا الدعاء لك في ظهر الغيب
أبوسليمان قام بنشر فبراير 28, 2005 قام بنشر فبراير 28, 2005 السلام عليكم مثال جميل وشرح رائع من الأستاذ خضر يمكنك الاعتماد عليه بكل جدارة أخي أبو الوليد . وفعلاً كما ذكر الأستاذ خضر به أمور خاصة يجب مراعاتها أما سؤال كيف يتم احتساب واليسار في الحقيقة الدالة لا تعرف إن كنت تتبع يمينًا أو يسارًا إنما تقوم بإعادة وضع الكائن - مربع تسمية ، مربع نص ، ... - باالنسبة ليسار النموذج بالمعادلة التالية .Left = Me.Width - (.Left + .Width) والعملية الحسابية تعني اجعل بعد الكائن من يسار النموذج = عرض النموذج - ( بعد الحالي للكائن عن يسار النموذج + عرض الكائن ) حيث : .Left : بعد الكائن عن يسار النموذج me.width: عرض النموذج .Width: عرض الكائن ملحوظة مهمة جدًا: في حالة وجود كائن بالنموذج من نوع "مجموعة خيارات" فإن الدالة تغيير الاتجاه ستعطي نتائج غير متوقعة . لذلك تحتاج إلى إضافة أخرى سواء على الدالة المذكورة أعلاه أو مثال الأستاذ خضر . أخوكم أبو سليمان 1
أبو وليد قام بنشر فبراير 28, 2005 الكاتب قام بنشر فبراير 28, 2005 جزاكم الله الف خير في حالة وجود كائن بالنموذج من نوع "مجموعة خيارات" فإن الدالة تغيير الاتجاه ستعطي نتائج غير متوقعة . لذلك تحتاج إلى إضافة أخرى سواء على الدالة المذكورة أعلاه أو مثال الأستاذ خضر . نعم يوجد ومع تجربت الكود اعلاه نجحت مع بعض التغييرات
أبو هادي قام بنشر فبراير 28, 2005 قام بنشر فبراير 28, 2005 السلام عليكم الحقيقة الكود مصمم ليعمل مع كل النماذج ، ولكني لم أطوره بما فيه الكفاية لعدم حصولي على أي تأييد يذكر وقتها . وأعدكم على تطويره في أقرب فرصة إن شاء الله ليكون في وحدة نمطية منفصلة ويمكن استدعاؤه من كل النماذج . ملاحظة لأخي أبو سليمان : حاول بقدر ما تستطيع أن تتخلى عن أكسس 2000 ، في أسوأ نسخة للأكسس حتى الآن . لقد أنزلت مثال أخي خضر ولكني لم أطلع عليه بعد . تحياتي . 1
أبوسليمان قام بنشر فبراير 28, 2005 قام بنشر فبراير 28, 2005 (معدل) السلام عليكم أخي الأستاذ أبو هادي نعم الكود كما ذكرت ؛ ولكن ليس الكود الموجود أعلاه - فهمو من نموذج أوقات الصلاة وقد أجريت عليه بعض التعديلات بما يتناسب مع النموذج وللأسف قمت بحذف ما لم أحتج إليه - إنما الكود الموجود في نموذج نتيجة التقويم . كما أود الإشارة إلى محاولتي في اخراج كود تغيير اللغة في وحدة نمطية عامة في برنامج الصلاة وقد استخدمتها فقط للتقارير يمكنك ملاحظة ذلك - وهي ليست كاملة لأني اخترت الأجزاء التي تخص التقارير فقط - . ملاحظة لأخي أبو سليمان :حاول بقدر ما تستطيع أن تتخلى عن أكسس 2000 ، في أسوأ نسخة للأكسس حتى الآن . عفوًا أخي أبو هادي : ما مناسبة هذا التوجيه هنا!!! ومع ذلك فأنا أستخدم نسخة XP ولكني جعلت افتراضات ملفات الآكسس على أكسس 2000 . ونسخة أوفيس ألفين لم أستخدمه إلا قليلاً في البدايات قبل Xp ، وعدت بعدها إلى 98 ثم Xp عند انتشارها. ولم أنتقل إلى أوفيس 2003 حتى اللأن . أخوكم أبو سليمان تم تعديل فبراير 28, 2005 بواسطه أبوسليمان
أبو وليد قام بنشر مارس 1, 2005 الكاتب قام بنشر مارس 1, 2005 كما أود الإشارة إلى محاولتي في اخراج كود تغيير اللغة في وحدة نمطية عامة في برنامج الصلاة وقد استخدمتها فقط للتقارير يمكنك ملاحظة ذلك - وهي ليست كاملة لأني اخترت الأجزاء التي تخص التقارير فقط - . شكرا عزيزي لقد استفدت منها ولكن لا تبطق الا على النموذج الاساسي والفرعي لا تتغير لغته فهل لي بكيفية ذلك
أبوسليمان قام بنشر مارس 3, 2005 قام بنشر مارس 3, 2005 أخي أبو الوليد سأبحث الأمر وأفيدك إن شاء الله . أخوك أبو سليمان
أبو هادي قام بنشر مارس 3, 2005 قام بنشر مارس 3, 2005 (معدل) السلام عليكم لقد توصلت إلى حل لتبادل مواقع الأعمدة في نماذج الـ datasheet يمكن الإستفادة منه في تبديل اللغة : Sub ChangeColumnOrder(eMe As Form) Dim Cols Dim Ctrl As Control Dim Ctrls As Long Dim Count As Integer On Error Resume Next If eMe.DefaultView <> 2 Then Exit Sub ReDim Cols(1 To eMe.Controls.Count) As String For Each Ctrl In eMe.Controls With Ctrl If .Section = 0 Then If .ControlType <> acLabel Then Count = Count + 1 Cols(.ColumnOrder) = .Name End If End If End With Next If Count < 2 Then Exit Sub Ctrls = Count For Count = 1 To Ctrls eMe(Cols(Count)).ColumnOrder = Ctrls - eMe(Cols(Count)).ColumnOrder - Count Next Count End Sub تحياتي . تم تعديل مارس 3, 2005 بواسطه أبو هادي
أبو هادي قام بنشر مارس 4, 2005 قام بنشر مارس 4, 2005 السلام عليكم جربوا المثال المرفق وارجعوا لي بالنتائج . اضغطوا زر Lang لتحويل الإتجاهات بين اليمين واليسار . تحياتي . ChangeOrientation.rar
أبو وليد قام بنشر مارس 5, 2005 الكاتب قام بنشر مارس 5, 2005 بارك الله فيك ممتاز ولكن به مشلكه واحده وهي عند تغيير اللغه اكثر من مرتين تزحف العناصر جهة اليمين مع كل تغيير للغه
أبو وليد قام بنشر مارس 5, 2005 الكاتب قام بنشر مارس 5, 2005 المشكله السابقه ممكن التغلب عليها المشكله الاخرى عنوان النموذج ما يتحول للعربي وياليت يكون على اليمن تنسيق now الوقت والتاريخ سويا اعتقد بعد ذلك يمكن ان يكون ثابت لجميع النماذج وفقك الله ورعاك
أبوسليمان قام بنشر مارس 5, 2005 قام بنشر مارس 5, 2005 السلام عليكم ما شاء الله عليك أخي أبو هادي عمل مبدع حقًا . لي ملاحظة بسيطة أخي رأيتك جعلت الوسيطة الممررة للدوال من نوع Form ماذا لو كنت أرغب أن استخدمه في التقارير ؟ ! الدالة لأن الكائن ليس بـ Form... هل يلزم ذلك أن نجعل للتقارير دوال مثلها ؟ ! لا أظن ذلك ؛ وأنت المبدع . ولعل الحل يكون بجعل الوسيطة من نوع Object أخي أبو الوليد كما رأيت أخي قد سبقني إلى ما تريد الأستاذ أبو هادي بحلوله المبدعة . أخوكم أبو سليمان
الدكتور خضر الرجبي قام بنشر مارس 5, 2005 قام بنشر مارس 5, 2005 (معدل) السلام عليكم أخي أبا هادي وأبا سليمان وأبا الوليد ، بارك الله فيكم جميعا سأجري بحث وافي عن كل ما جئتم به وأوافيكم قريباُ بنتائجه التي أتوقع من الان أن تكون أكثر من رائعة. مع فائق احترامي وتقديري لكم جميعاُ. تم تعديل مارس 5, 2005 بواسطه خضر الرجبي
أبو هادي قام بنشر مارس 6, 2005 قام بنشر مارس 6, 2005 السلام عليكم حياكم الله جميعا ورعاكم . الحقيقة أن الكود رأيته شبه جاهز في إحدى برامجي التي لم ترى النور وعدلت عليه أمور بسيطة عدا كود تبديل مواقع الأعمدة للـ datasheet فهو حديث الكتابة . فحصت مشكلة الإزاحة وتوصلت أنها تحصل مع النماذج التي اتجاهها من اليمين إلى اليسار أما العكس فلا مشكلة وسأقوم بفحص الكود ودراسة التغلب عليها . عنوان النموذج أعتقد أني أغفلته دون قصد وسأقوم بإضافته ولكن إتجاهه قد لا يمكننا عمل ذلك إلى بحيل . بالنسبة للوسيطة سأقوم بتبديلها . تحياتي .
أبو هادي قام بنشر مارس 6, 2005 قام بنشر مارس 6, 2005 السلام عليكم - لم أستطع التغلب على مشكلة الإزاحة في النماذج ذات الإتجاه يمين إلى اليسار . - تم التعامل مع تسمية النموذج . - تم تبديل الوسيطة من Form إلى Object . - تم تطويره ليتعامل مع كل النماذج الفرعية والنماذج الفرعية للفرعية وهكذا دون حد أي Subform/Subform/Subform/............ وهكذا . يحتاج إلى تجربة مع التقارير والمحتوية تقارير فرعية بالتحديد حيث أعتقد أن هناك مشكلة . تحياتي . ChangeOrientation20050306.rar
أبو وليد قام بنشر مارس 6, 2005 الكاتب قام بنشر مارس 6, 2005 (معدل) بارك الله فيكم جميعا اخي أبو هادي لقد حذفت جزء من الكود ولم يعد النموذج يزحف If UBound(GrpCtl) = -1 Then GoTo ExitSub For Count = 1 To UBound(GrpCtl) With GrpCtl(Count) .Left = eMe.Width - (GrpLeft(Count) + GrpWidth(Count)) .Width = GrpWidth(Count) End With eMe.Width = FormWidth Next Count تم تعديل مارس 9, 2005 بواسطه أبو هادي
أبوسليمان قام بنشر مارس 9, 2005 قام بنشر مارس 9, 2005 (معدل) السلام عليكم تشكر أخي أبو هادي على ما تقوم به وسوف أجرب على التقارير والتقارير الفرعية وأفيدك بالنتيجة. أخوك أبو سليمان تم تعديل مارس 9, 2005 بواسطه أبوسليمان
أبوسليمان قام بنشر مارس 11, 2005 قام بنشر مارس 11, 2005 (معدل) السلام عليكم أخي الأستاذ أبو هادي الأداة تعمل على التقارير كما تعمل على النماذج تمامًا دون أي مشاكل عند استدعائها من حدث - عند التنسيق لرأس الصحفة - . كما أنوه أخي إلى ملاحظة أخي خضر في المشاركة التالية : http://www.officena.net/ib/index.php?showt...indpost&p=30979 بقوله : ما تبقى للحل في موضوع تحويل اللغة هو أن الاقتران الاخير الذي طورته قد استخدمته هنا لبيئة التقارير frmRepa وهو يعمل بشكل رائع ، بإستثناء لعنصر التحكم acTabctl (الصفحات)، أرجو من حضرتكم معاينة المشكلة ومحاولة حلها . ويوجد ملاحظة وضعتها في الكود. آمل ملاحظة ذلك أخوك أبو سليمان تم تعديل مارس 12, 2005 بواسطه أبوسليمان
أبو هادي قام بنشر مارس 11, 2005 قام بنشر مارس 11, 2005 السلام عليكم الأخ أبو وليد ، حذف هذه السطور سوف يعطل معالجة المشكلة التي تحدثها أداة مجموعة الخيارات . فإبقائها أفضل على أن يكون اتجاه النموذج من الشمال إلى اليمين . شكرا لك على جهودك أخي أبو سليمان . لقد تم التعديل على الكود ليحتوي أداة الـ TabControl . تحياتي . ChangeOrientation20050311.rar
أبوسليمان قام بنشر مارس 30, 2005 قام بنشر مارس 30, 2005 السلام عليكم أخي الأستاذ أبو هادي فيما يبدوا أخي أن دالة NewSource لا تتعامل مع القوائم التي لا تكون مصادرها عبارة عن جملة SQL ومنها استوحيت دالة جديدة اسميتها ShowColumn لكي تتعامل مع جميع أنواع المصادر للقوائم لأنها لا تعتمد عليها وإنما تعتمد على العمود المنضم ، وعدد الأعمدة في القائمة ، عرض الأعمدة إليك الدالة أرجو تقييمها : Function ShowColumn(ByVal BoundCol As Byte, _ ByVal CountCol As Byte, _ ByVal WidthCols As String) As String Dim WidCol(3) As String Dim Pos As Byte, I As Byte Dim OldWidths As String OldWidths = WidthCols ShowColumn = OldWidths If BoundCol <> 1 Then Exit Function If CountCol <> 3 Then Exit Function For I = 1 To 3 Pos = InStr(1, OldWidths, ";") If Pos <> 0 Then WidCol(I) = Left(OldWidths, Pos - 1) OldWidths = MID(OldWidths, Pos + 1, Len(OldWidths)) Else WidCol(I) = OldWidths End If Next I ShowColumn = WidCol(1) & ";" & WidCol(3) & ";" & WidCol(2) End Function * ملحوظة : يلزم أن يكون العمود المنضم هو العمود الأول. استبدل السطر التالي .RowSource = NewSource(.RowSource) بالسطر .ColumnWidths = ShowColumn(.BoundColumn, .ColumnCount, .ColumnWidths) وذلك في دالة ChangeOrientation محبكم أبو سليمان
أبو هادي قام بنشر مارس 30, 2005 قام بنشر مارس 30, 2005 السلام عليكم عزيزي أبو سليمان .. بارك الله فيك . لابد أن تكون الدالة ممتازة وخصوصا أنها من أبي سليمان ، ولكنها ليست بديلة عن الدالة الأولى حيث اختلاف الوظيفة . فالدالة الأولى للتبديل بين العمودين الثاني والثالث لمصدر البيانات عندما يكون أحدهما بالعربي والآخر بالإنجليزي . والدالة الأخرى للتبديل بين العمودين الثاني والثالث لعرض الأعمدة . تحياتي .
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.