الموضوع السابق   الموضوع التالي 

أرني هذه النافذة في المرآة!

Procedure: MakeWindowRTL

الغرض
تغيير اتجاه مظهر النافذة بأكملها لتكون من اليمين إلى اليسار.


الصيغة

procedure MakeWindowRTL(hWin: HWND);


الوسائط (Parameters)

hWin مقبض (Handle) النافذة المطلوب تغيير اتجاهها.

الشرح
لعلك تتساءل: لماذا هذا الإجراء و نحن لدينا الخاصية BiDiMode التي يؤدي ضبطها على bdRightToLeft إلى جعل النافذة تبدو ذات مظهر من اليمين إلى اليسار، حيث ينتقل عنوان النافذة و القوائم إلى اليمين؟!!
حسناً... افتح أحد البرامج التابعة للنظام Windows، مثل المفكرة أو الرسام أو الحاسبة. سترى أنه ليس فقط العنوان و القوائم من جهة اليمين، بل أيضاً رمز النافذة (Icon)، و أن أزرار التحكم (الإغلاق و التكبير و التصغير) قد انتقلت إلى الجهة اليسرى، و كذلك أصبح تدرج لون أرضية عنوان النافذة من اليمين إلى اليسار.

إن هذا بالضبط ما يقوم به هذا الإجراء، و لكن مع الشروط المهمة التالية:

  1. يجب إبقاء الخاصية BiDiMode للنافذة على قيمتها الافتراضية (bdLeftToRight).
  2. يجب إضافة عنصر Panel إلى النافذة و ضبط الخاصية Align التابعة له على alClient.
  3. يجب وضع كافة العناصر المرئية الأخرى داخل هذا العنصر Panel.
  4. يجب كتابة الشفرة التالية في الإجراء OnReSize للنافذة (إذا كان اسم العنصر Panel هو Panel1):

    Panel1.Visible := False;
    Panel1.SetBounds(0, 0, ClientWidth, ClientHeight);
    Panel1.Visible := True;

  5. يمكنك ضبط الخاصية BiDiMode للعنصر Panel و العناصر التي بداخله كيفما تشاء، لأن هذا الإجراء لا يؤثر على قيمة هذه الخاصية للعناصر الموجودة في النافذة.

 أعلى الصفحة
 الموضوع السابق   الموضوع التالي