أبو هادي قام بنشر يوليو 4, 2003 قام بنشر يوليو 4, 2003 السلام عليكم لقد قمت بتجهيز مثال لصندوق رسائل عربي وبدأت العمل به ليكون أول مشاركة لي في منتدانا القادم ولكن .. بعد البحث وجدت كود لتعريب أزرار صندوق الرسائل الأصل وحاولت جاهدا للإستفادة منه ولكن باءت كل محاولاتي بالفشل . عليه إذا تمكن أحدكم من التعديل عليه أو تشغيله بدون مشاكل سوف أقوم بالإستفادة منه بعد تكييفه ليصبح عربي 100% ، وإذا لم يمكن ذلك سوف أقوم بتكملة ما ابتدأت به وهو تصميمه من البداية . آمل منكم الآتي : 1 - المحاولة مع الكود فقد ينجح ويكفينا تعب التصميم من البداية . 2 - في حالة عدم الإستفادة من الكود أن تتفضلوا علينا باقتراحاتكم لتصميم صندوق عربي جديد . Option Compare Database Option Explicit Private m_hHook As Long Private Const IDOK = 1 Private Const IDCANCEL = 2 Private Const IDABORT = 3 Private Const IDRETRY = 4 Private Const IDIGNORE = 5 Private Const IDYES = 6 Private Const IDNO = 7 Private Const WH_CBT = 5 Private Const GWL_HINSTANCE = (-6) Private Const HCBT_ACTIVATE = 5 Private Declare Function GetCurrentThreadId Lib "kernel32" () As Long Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _ (ByVal hwnd As Long, ByVal nIndex As Long) As Long Private Declare Function SetDlgItemText Lib "user32" Alias "SetDlgItemTextA" _ (ByVal hDlg As Long, ByVal nIDDlgItem As Long, _ ByVal lpString As String) As Long Private Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" _ (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, _ ByVal dwThreadId As Long) As Long Private Declare Function UnhookWindowsHookEx Lib "user32" _ (ByVal hHook As Long) As Long Public Sub MessageBoxH(hwndThreadOwner As Long) Dim hInstance As Long Dim hThreadId As Long hInstance = GetWindowLong(hwndThreadOwner, GWL_HINSTANCE) hThreadId = GetCurrentThreadId() m_hHook = SetWindowsHookEx(WH_CBT, AddressOf MsgBoxHookProc, hInstance, hThreadId) End Sub Private Function MsgBoxHookProc(ByVal uMsg As Long, ByVal wParam As Long, _ ByVal lParam As Long) As Long If uMsg = HCBT_ACTIVATE Then SetDlgItemText wParam, IDOK, "موافق" SetDlgItemText wParam, IDCANCEL, "إلغاء الأمر" SetDlgItemText wParam, IDABORT, "إحباط" SetDlgItemText wParam, IDRETRY, "إعادة المحاولة" SetDlgItemText wParam, IDIGNORE, "تجاهل" SetDlgItemText wParam, IDYES, "نعم" SetDlgItemText wParam, IDNO, "لا" UnhookWindowsHookEx m_hHook End If MsgBoxHookProc = False End Function ولتنفيذ الكود ضع هذا الكود في حدث عند النقر لزر button : 'هذه الإجراء مسؤول عن تعريب الأزرار MessageBoxH Me.hwnd 'بعدها مباشرة استدعاء الدالة بالطريقة المعروفة MsgBox "لقد أصبحت عناوين الأزرار باللغة العربية" & vbCrLf & "مع تحيات عامر جوز" _ , vbInformation + vbMsgBoxRtlReading + vbMsgBoxRight, "الفريق العربي للبرمجة" 'باقي الأزرار MessageBoxH Me.hwnd MsgBox "باقي الأزرار", vbYesNoCancel + vbMsgBoxRtlReading + vbMsgBoxRight MessageBoxH Me.hwnd MsgBox "باقي الأزرار", vbAbortRetryIgnore + vbMsgBoxRtlReading + vbMsgBoxRight تحياتي . 1
أبو هادي قام بنشر يوليو 5, 2003 الكاتب قام بنشر يوليو 5, 2003 (معدل) السلام عليكم شكرا لكم جميعا لتفاعلكم مع الموضوع ، الحقيقة عمل معي مع الـ XP للويندوز والأكسس وبعد مساهمة أخي العزيز ابن مسقط فأنا أتوقع أن السبب هو الأكسس وليس النظام . عموما عملت دالة لتقوم بإظهار الرسائل العربية باسم ArbMsgBox بدلا من MsgBox الأصل على أن تقوم الدالة نفسها بتغيير اتجاه الصندوق ومحاذاة النص لليمين حيث لا داعي لكتابتها أثناء طلب الرسالة . ولكــــــــــــــن .. ظهرت عندي مشكلة أن الإتجاه والمحاذاة لم تعملا وأرجح أن يكون السبب اللغة حيث لم أقم بتثبيتها مع الأوفيس . ثانيا لم يعمل التعريب أثناء جعل النموذج للـ Pop Up = On . عليه سوف يكون لي جولة أخرى مع الرسائل العربية لاحقا . تحياتي . الملفات المرفقة ArbMsgBox.zip ( 25.55ك ) عدد مرات التنزيل: 125 تم تعديل مارس 14, 2005 بواسطه أبو هادي
أبو هادي قام بنشر يوليو 9, 2003 الكاتب قام بنشر يوليو 9, 2003 (معدل) السلام عليكم من العيوب في الكود السابق أنه يعمل في النماذج فقط وحتى في النماذج لا يعمل حتى يتحمل النموذج بمعنى لو تم استعمال الدالة في حدث عند التحميل أو عند الفتح فلن تعمل . الآن .. الدالة تعمل مع النماذج والتقارير والوحدات النمطية . والمشكلة الوحيدة الآن التي أواجهها الآن هي عدم عمل الدالة إذا كان النموذج منبثق PopUp وسوف أستمر في المحاولة إن شاء الله . إضطررت لنجاح عمل الدالة أن أصمم نموذج باسم ArbMsgBox_frm آمل عدم حذفه أو التعديل في خصائصه . تحياتي . الملفات المرفقة ArbMsgBox_2000.zip ( 35.14ك ) عدد مرات التنزيل: 92 تم تعديل مارس 14, 2005 بواسطه أبو هادي
أبو هادي قام بنشر يوليو 10, 2003 الكاتب قام بنشر يوليو 10, 2003 (معدل) السلام عليكم عذرا ، يفترض أن أضع نسخة 2000 وبالخطأ وضعت نسخة 2002 . تحياتي . الملفات المرفقة ArbMsgBox_2000.zip ( 32.73ك ) عدد مرات التنزيل: 106 تم تعديل يونيو 10, 2005 بواسطه أبو هادي
أبو هادي قام بنشر يونيو 10, 2005 الكاتب قام بنشر يونيو 10, 2005 (معدل) السلام عليكم تم تنقيح المثال ومنها الإستغناء عن نموذج الخاص بالرسائل وتم الإستعاضة عنه بإنشاء نموذج جديد ثم حذفه مباشرة . لا يزال يعاب على الأدارة أنها لا تعمل مع النماذج المنبثقة . تحياتي . الملفات المرفقة ArbMsgBox_Ver1.rar ( 20.83ك ) عدد مرات التنزيل: 2 تم تعديل يونيو 11, 2005 بواسطه أبو هادي
أبو هادي قام بنشر يونيو 11, 2005 الكاتب قام بنشر يونيو 11, 2005 (معدل) السلام عليكم لقد أرجعت التعديلات السابقة وذلك لأن إنشاء نماذج في نسخ MDE غير متاح . تحياتي . ArbMsgBox_Ver1.rar تم تعديل يونيو 11, 2005 بواسطه أبو هادي 2
Lamyaa قام بنشر مارس 25, 2021 قام بنشر مارس 25, 2021 رفعت موضوعا قديما ذكرنا بأبي هادي تمنياتنا أن يكون بصحة وعافية
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.