الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

محاولة لتعريب ال MessageBox

مغلق
بدأه إبراهيم_دياب5 في 24 يونيو 2002 · 2 رد · 615 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله:

كنت قد وجدت كود فيجول لتعريب الرسائل وقمت بتحويله لدلفى فتوصلت للكود التالى.

procedure TForm1.Button1Click(Sender: TObject);

Const

mb_ok = 1;

mb_CANCEL = 2;

mb_YES = 3;

mb_NO = 4;

mb_ABORT = 5;

mb_RETRY = 6;

mb_IGNORE = 7;

WH_CBT = 5;

GWL_HINSTANCE = (-6);

HCBT_ACTIVATE = 5;

var

m_hHook:hHook;

Procedure MessageBoxH(hwndThreadOwner :integer);

var hInstance,hThreadId: THandle;

Function MsgBoxHookProc(uMsg :integer; wParam: integer; lParam: Longint): Longint; export;

begin

If uMsg = HCBT_ACTIVATE Then

begin

SetDlgItemText(wParam, mb_OK, 'موافق');

SetDlgItemText(wParam, mb_CANCEL, 'إلغاء الأمر');

SetDlgItemText(wParam, mb_ABORT, 'إحباط');

SetDlgItemText(wParam, mb_RETRY, 'إعادة المحاولة');

SetDlgItemText(wParam, mb_IGNORE, 'تجاهل');

SetDlgItemText(wParam, mb_YES, 'نعم');

SetDlgItemText(wParam, mb_NO, 'لا');

// UnhookWindowsHookEx(m_hHook)

end;

End;

Begin

hInstance := GetWindowLong(hwndThreadOwner, GWL_HINSTANCE);

hThreadId := GetCurrentThreadId();

m_hHook := SetWindowsHookEx(WH_CBT, @MsgBoxHookProc, hInstance, hThreadId);

end;

begin

MessageBoxH(Application.Handle);

MessageBox(0,'هذه تجربة'+^J+'إبراهيم دياب','العنوان',mb_ok);

end;

ولكنه للأسف لم يعمل / فالرجاء المساعدة أو لو أن لديكم طريقة لتعريب الرسائل سواء فى الإتجاه أو أسماء الزراير.

وشكراً

#2

لتعريب الاتجاه في الرسائل استخدم MB_RTLREADING :

     MessageBox( Handle,
                 PChar('تجربة'),
                 PChar('تجربة'),
                 MB_OK  or MB_RTLREADING);

أما بالنسبة لأسماء الأزرار فانها ستكون عربية اذا كان النظام عربي وهذا الأفضل.

#3

السلام عليكم

أخي العزيز

كما قال أخي fsl بإستخدام MB_RTLReading سوف تظهر اسماء الأزرار بالعربي في حال وجود نظام تشغيل عربي، وهذه الطريقة الأفضل حتى يعمل برنامجك على كل نظام وتظهر الازرار حسب اللغة دون تعديل الكود، ايضا استخدم بالاضافة الى ذلك MB_Right حتى يظهر نص الرسالة من اليمين الى اليسار لتظهر الرسالة بالعربي بشكل صحيح

 MessageBox(Handle,'نص الرسالة', 'عنوان الرسالة', 
MB_YesNo + MB_IconStop + MB_Right + MB_RTLReading);

مع تحياتي

والسلام

لا تحزن:

إن كنت فقيرا فغيرك محبوس في دين، وإن كنت لا تملك وسيلة نقل فسواك مبتور القدمين، وان كنت تشكوا من آلام فغيرك يرقدون على الاسرة البيضاء و من سنوات، وان فقدت ولدا فغيرك فقد عددا من الأولاد و في حادث واحد.

لا تحزن:

فأنت تشرب الماء الزلال، و تستنشق الهواء الطلق، و تمشي على قدميك معافى، و تنام ليلك آمنا.

هذا الموضوع مغلق.

مواضيع مشابهة