الدرس الأول من الدروس الإحترافية في دورة AutoIt3 Scripting Language إنشاء واجهة المستخدم GUI (هام جداً) ..

الناقل : elmasry | الكاتب الأصلى : TinyHacker | المصدر : www.arabteam2000-forum.com

 
ملاحظة: يجب أن تتابع الدروس بالتسلسل منذ بداية الدورة وإلا لن تستطيع تطبيق الدروس ولن تفهم فحواها

الدرس الأول من الدروس الإحترافية في دورة AutoIt3 Scripting Language

 



تصميم واجهات المستخدم GUI :

مع برنامج AutoIt3 في الإصدار الجديد منه قد تم تصميم برنامج لتصميم الواجهات الخاصة بالمستخدم Graphical User Interface تماماً كالتصميم على فيجوال بيزك .. لكنني سأتطرق إلى كيفية تصميم الأدوات في الواجهة بطريقة يدوية عادية... ثم سأضع لكم البرنامج الخاص بتصميم هذه الواجهات لكي يوفر عليكم الوقت والجهد..
سنتفق على شكل واحد عند شرح الدروس الإحترافية.. سنضع الأداة الخاصة التي تفيدنا في شرح أمر معين بداخل هذه النافذة في الأسفل..


ارفق صورة : monthly_09_2010/post-233543-022033100 1284596591.jpg


أولاً – إنشاء واجهة مستخدم فارغة:

إن لغتنا هذه تستخدم خاصية غير موجودة في باقي اللغات وهي خاصية Include .. أي إرفاق.. إرفاق سكريبتات خارجية يحتاجها برنامجك ليعمل...
مثلاً لو أردن وضع زر Button عليك فقط تبليغ السكريبت الخاص ببرنامجك بأن يرفق لك السكريبت الخارجي الخاص بالأزرار والتحكم بها...
فتكتب له في بداية سكريبت برنامجك:

#include <GuiButton.au3>


طبعاً هذا في حال اخترت تصميم برنامجك وإدخال الأدوات عليه بطريقة يدوية (كتابة) وليس عن طريق برنامج التصميم..
وبما أنني اخترت البدء بطريقة التصميم الكتابي (التي يجب عليك معرفتها جيداً) فسأتابع..

لإنشاء واجهة علينا إرفاق السكريبتات الخارجية الخاصة بها.. وهي سكريبتان:

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>


نضع هذا الكود في أول ملف السكريبت الخاص ببرنامجنا..
ثم نبدأ..

أمر إنشاء نافذة مستخدم:

GUICreate ("Title", Width , Height, Left , Top)
Title = عنوان النافذة
Width = عرض النافذة
Height = إرتفاع النافذة
Left = موقع النافذة من يسار الشاشة
Top = موقع النافذة من أعلى الشاشة


يجب وضع كود بعد هذا الكود لإظهار النافذة بعد إنشاءها..

أمر تغيير حالة النافذة: (قد سبق شرح هذا الأمر بشكل مشابه في درس التحكم بالنوافذ)

GUISetState(@SW_SHOW)


لكن الأمر لن يعمل قبل أن نضيف شيئاً آخر للسكريبت الخاص ببرنامجنا.. وهو كود يعرض لنا النافذة ويمنع إغلاقها طالما أن السكريبت يعمل..


وسأشرح لكم هذا الكود الأخير:

While 1         ;---> show the window for ever
$nMsg = GUIGetMsg() ;----> get the state of the window for ever
Switch $nMsg   ;----> switch the control state to $nMsg
Case $GUI_EVENT_CLOSE  ;----> case you clicked X to close the window
Exit ;------> Exit  your program
 here we can add the (Case) commands for the tools ;

EndSwitch ;-----> end code that controls switching    
Wend            ;-----> end code that shows the window


والشرح كالتالي:

While 1 : كود مهم يبقي النافذة مفتوحة
Wend : كود لإنهاء بداية إظهار النافذة

$nMsg = GUIGetMsg() : كود يقوم بإستقبال حالة النافذة طالما أنها مفتوحة.. أي يبقى على إستعداد لحين تضغط على زر معين في النافذة أو تقوم بأي حركة داخلها..

Switch $nMsg : هذا الكود يوضع كبادئة لوضع الأوامر الخاصة بالأدوات بداخلها
EndSwitch : هذا الكود لإنهاء بادئة الكود السابق

Case : هذا الكود خاص بالتحكم بالأدوات سنتعلم إستخدامه فهو الأكثر إستخداماً..


تطبيق لشرح إنشاء نافذة (واجهة مستخدم) فارغة:

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
GUICreate("My Program", 235, 328, -1, -1)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
  Case $GUI_EVENT_CLOSE
   Exit

EndSwitch
Wend


صورة التطبيق:

ارفق صورة : monthly_09_2010/post-233543-059800700 1284595386.jpg


ملاحظات على هذا التطبيق:

لاحظو أنني وضعت الموقع بالنسبة ليسار الشاشة -1 وبالنسبة لأعلى الشاشة -1 وهذا الرقم سوف يضع النافذة في منتصف الشاشة بشكل تلقائي.. يمكنك تغييرها إن أردت.. علماً أن مبدأ القياس بالبكسل كما سبق الذكر في درس النوافذ والتحكم بها..

لم نضع سوى أمر واحد لهذه النافذة.. وهو إغلاق البرنامج عند الضغط على زر الإغلاق، سنتعلم إضافة الأوامر في دروس لاحقة إن شاء الله..

لا تشمئز من هذا الدرس نتيجة تراكم الأكواد.. صدقني هي عملية سهلة ستصبح من المسلمات بعد أن تتابع الدروس العديدة القادمة.. ثم سترتاح كلياً من هذه الأكواد وكتابتها عندما أضع لك البرنامج الخاص بإنشاء الأدوات بطريقة أوتوماتيكية كما في فيجوال بيزك تماماً.. لكن عليك أولاً إتقان طريقة التصميم اليدوية..