| الموضوع السابق | الموضوع التالي |
الغرض
قلب العناصر ليكون اتجاهها من اليمين إلى اليسار (Right-To-Left Layout).
الصيغة
procedure ChangeControlLayout(Control: TWinControl; ArabicLayout: Boolean);
procedure ChangeControlLayout(ControlHandle: LongWord; ArabicLayout: Boolean);
الوسائط (Parameters)
| Control | اسم العنصر أو المكون (Component) المراد تغيير مظهره (من النوع TWinControl). يستعمل مع المكونات الرئيسية. | |
| ControlHandle | عدد صحيح موجب، و هو مقبض (Handle) العنصر أو المكون المراد تغيير مظهره. يستعمل مع العناصر الفرعية (Child Controls) المحتواة ضمن عناصر أخرى. | |
| ArabicLayout | بارامتر من النوع Boolean يحدد اتجاه تخطيط العنصر. True تعني من اليمين إلى اليسار، و False تعني من اليسار إلى اليمين. |
الشرح
بعض المكونات - خاصة مكونات Win32 مثل TreeViewو ListView - و رغم امتلاكها للخاصية BiDiMode التي يمكن من خلالها إظهار المكونات بتخطيط من اليمين إلى اليسار (ليناسب الواجهة العربية)، فإن تلك المكونات لا تستجيب للتغييرات في قيمة الخاصية BiDiMode و تبقى دائماً على حالها (من اليسار إلى اليمين).
الصيغة الأولى من الدالة تستعمل مع تلك المكونات مثل TreeView و ListView و ToolBar، ... إلخ. مثلاً:
ChangeControlLayout(ListView1, True);
بينما الصيغة الثانية مخصصة للمكونات التي تحتوي في داخلها على مكونات أبناء (Child Components) فمثلاً المكون ListView يحتوي في داخله على مكون عناوين أعمدة (ColumnHeaders) و هذه المكونات الداخلية لا تتأثر بعملية التغيير التي تتم على المكون الرئيسي (حيث يبقى ترتيبها من اليسار إلى اليمين)، لذلك نستعمل الصيغة الثانية لتغيير تلك المكونات الداخلية، فمثلاً لتغيير عنصر ListView بشكل كامل:ChangeControlLayout(ListView1, True);
ChangeControlLayout(FindWindowEx(ListView1.Handle, 0, nil, nil), True);
لاحظ أننا في الصيغة الثانية استعملنا الدالة FindWindowEx (و هي من دوال واجهة برمجة التطبيقات - API Functions) للحصول على المقبض (Handle) الخاص بالمكون الابن (ColumnHeader) الموجود داخل العنصر ListView.
أعلى الصفحة
| الموضوع السابق | الموضوع التالي |