على الرغم من أن الدوت نيت 2، أو بالأصح تقنية Windows Forms قامت بدعم كبير لميزة المرآة Mirroring للأدوات، بحيث ترسم اللشاشات Form بإحداثيات من اليمين إلى اليسار، و التأثير بالتالي على جميع الأدوات Controls، إلا أن +GDI لا تتماشى مع Windows Forms.
فعلى سبيل المثال، لو استخدمت الدالة DrawRectangle فستراها بكل أدب تحترم الوسم WS_EX_LAYOUTRTL و ترسم المربع بإحداثيات من اليمين إلى اليسار، و لكن بمجرد التهور و اللعب مع مجموعة الدوال *Fill مثل FillRectangle او FillRegion فستنصدم بأنها ترسمها بإحداثيات من اليسار إلى اليمين، و الشكلين التاليين يوضحون ما أتكلم عنه.
|
الشكل(1): مناداة DrawRectangle |

الشكل(2): مناداة FillRectangle |
هذا عدى حالات التشنج التي تحصل في حالات نادرة، حيث ينقلب جميع ما رسم على الشاشة إلى الزاوية اليسرى بدون سبب، وفي لحظة، و في أقل من ثلاث ثواني، يعود الرسم كما كان، إلى الزاوية اليمنى،،،
طبعاً، قمة المأساة هي لما تسأل عن هالسلوك الغريب في موقع أجنبي، و يجاوبك واحد MVP، و يقول لك ان وسم RTL مخصص للنصوص Text و ما له علاقة بالرسم،، هاهاهاها، ليته كان ساكت،،،
ايضاً ما يوفوتني الكلام عن تعديلهم الآخير في الدوت نيت 2، و هو الكلاس TextRenderer و اللي وضع بالذات لدعم اللغات المعقدة (مثل العربية والعبرية و الأردو و الفارسية و الهندو)، هذه الكلاس، مثل اللي يصلح التلفزيون، علشان يشتغل المايكرويف، لأنها ببساطة ليست جزء من +GDI، بل مستعارة من GDI،،،
شيء يحبط بصراحة، ما زلنا في آخر القائمة في كل مرة، و مايكرسوفت تحسن من دعم اللغة العربية بالقطارة، و مسؤليتك هي ان تقوم بالتريكس لتفادى هالعيوب الكريهة في إطارهم المبجل،،، صارت اللعب مع الدوت نيت 2 (و انت تكتب برنامج بالعربية) مثل دخول مؤسسة حكومية معروفة بعراقتها في البيروقراطية، مستحيل تمشي معاملتك بدون تضييق، و فسلفة ما لها معنى، و الجوء إلى GDI و ال PInvoke لازم يكون من ضمن أسلحتك.
الكلام عن هذه العيوب قليل في الإنترنت، و لا أدري بصراحة ليه،،،
تشاو
|