بسم الله الرحمان الرحيم, الملك القدوس العزيز الحكيم.
والصلاة والسلام على أشرف الأنبياء والمرسلين, سيدنا وحبيبنا محمد ابن عبد الله صلى الله عليه وسلم.
أما بعد فأيها الإخوى والأخوات الكرام بتحية الإسلام أحييكم, وتحية الإسلام السلام فالسلام عليكم ورحمةًا من الله تعالى وبركاته.
أيها الأحباب تكملة للدورة التي قد بدأناها في تعليم لغة البرمجة autoit
والتي قد تأخرت عنكم بها كثيرا, ولاكن كانت عندي ظروف منعتني من التكملة أرجو أن تعذروني.
اليوم وتكملة لهذه السلسلة التي أرجو من الله أن تكن مرجعا لنا ولكم أيها الأحباب, سنواصل تعرفنا على أهم ما تحتويه هذه اللغة.
ففي الدرس الخامس كنا قد تعرفنا على ملفات الإستدعاء وأقسامها
وكيف نستفيد منها.
يمكنكم طبعا العودة إلى الدرس الخامس وذالك
بالضغط هنا
والآن سأبدء معكم أيها الأحباب في استعراض أهم الدوال المدموجة مع اللغة بشكل تلقائي
وبدايةًا نبدء مع دالة موجودة في كل لغات البرمجة, ويستخدمها كل مصمم البرامج والأدوات بدون إستثناء.
ألا وهي رسائل المحاورة
message box
ففي هذا الدرس سنتطرق لمعرفة رسائل المحاورة, وطرق إستخدامها المختلفة.
ملاحظة هامة
إنا برنامج autoit تم تحديثه لنسخة جديدة
هو والمحرر الخاص به
لتحميل الإصدارات الجديدة يرجا الذهاب إلى
مقدمة في لغة autoit
والآنلنبدء على بركة الله
ما هي رسائل المحاورة
لعلك عزيزي المتابع جربت برامج كثيرة واستخدمت العديد من الأداوات
وجربت حذف ملفات من الجهاز وغيرها من الأعمال
وأكيد في مرة من المرات رأيت رسائل تحذيرية بالخطء, أو رسائل تفيد بنجاح العملية, ورسائل تسألك عن أمر معين … وغيرها من الرسائل.
هذه ما تسمى برسائل المحاورة
حيث رسائل المحاورة تتكون
من عنوان للنافذة ونص لعرضه وأزرار مختلفة فمثلا
زر OK
أو زر OK و cancel
أو زر yes و no
إلى آخره
وبالضغط على أي زر يقم بمهمة محددة.
وهذا ما سنتعرف عليه اليوم في درسنا هذا
كيف يمكنني إنشاء رسائل المحاورة في لغة autoit? وما هي المتطلبات؟
عزيزي الدالة المسؤولة عن إظهار رسائل المحاورة في لغة autoit هي
MSGBox
وشكل الدالة يكن كالتالي |:
MSGBox(tags, ‘title’, ‘text’, timeout, window)
وتتطلب هذه الدالة استدعاء ملف من المكتبة لالاستفادة من المتغيرات
طبعا يمكن الاستغناء عنه واستخدام الأرقام
لاكن في هذا الدرس سنتطرق للإثنين
ولاستدعاء الملف يكفي وضع السطر التالي في أعلى ملف السكربت
#include
إعدادات الدالة
flags | إن flags هي خيارات (اعلامات) الدالة التي تبين نوع الرسالة والأزرار التي نريد عرضها والكثير |
title | عنوان الرسالة |
text | عنوان الرسالة |
timeout | [optional] إن خاصية timeOut هي لتحديد وقت إغلاق الرسالة إذا لم يقم المستخدم بالضغط على أي زر, إفتراضية تكن على 0 ما يعني بدون وقت محدد. |
hwnd | [optional] رمز النافذة التي تريد ربطها معا الرسالة, وسنتعرف لاحقا كيف يمكنني الحصول على رمز النافذة في درس التحكم في النوافذ. |
والآن بعد أن تعرفنا على إعدادات الدالة سنتعرف مع بعض على خيارات الدالة وهي flags
flags
الأزرار
الإسم الثابت | الرقم الطبيعي للعملية | الزر الذي سنحصل عليه | رمز آخر يمكن استخدامه |
---|---|---|---|
$MB_OK | 0 | زر OK | 0x0 |
$MB_OKCANCEL | 1 | زر OK وزر Cancel | 0x1 |
$MB_ABORTRETRYIGNORE | 2 | زر Abort, وزر Retry, وزر Ignore | 0x2 |
$MB_YESNOCANCEL | 3 | Yes, No, Cancel | 0x3 |
$MB_YESNO | 4 | Yes, No | 0x4 |
$MB_RETRYCANCEL | 5 | Retry, Cancel | 0x5 |
$MB_CANCELTRYCONTINUE | 6 | Cancel, Try Again, Continue | 0x6 |
$MB_HELP | 16384 | إضافة زر مساعدة إلى الرسالة. عند الضغط عليه أو الضغط على f1 سيتم إرسال رسالة نظامية للبرنامج, طبعا يمكن التحكم فيها. | 0x4000 |
أيقونات الرسالة
الاسم الثابت | رقم العملية | الأيقونة الناتجة | الرمز البديل |
---|---|---|---|
0 | لا أيقونة | 0x0 | |
$MB_ICONERROR | 16 | رسالة الخطء | 0x10 |
$MB_ICONQUESTION | 32 | أيقونة علامة الإستفهام | 0x20 |
$MB_ICONWARNING | 48 | أيقونة التعجب | 0x30 |
$MB_ICONINFORMATION | 64 | أيقونة المعلومات | 0x40 |
الأزرار الإفتراضية
الاسم الثابت | رقم العملية | الزر الإفتراضي الناتج | الرمز البديل |
---|---|---|---|
$MB_DEFBUTTON1 | 0 | الزر الأول هو الإفتراضي | 0x0 |
$MB_DEFBUTTON2 | 256 | الزر الثاني هو الإفتراضي | 0x100 |
$MB_DEFBUTTON3 | 512 | الزر الثالث هو الإفتراضي | 0x200 |
$MB_DEFBUTTON4 | 768 | الزر الرابع هو الإفتراضي | 0x300 |
نوع الرسالة
الإسم الثابت | رقم العملية العملية | نوع الرسالة الناتج | رمز بديل يمكن استخدامه |
---|---|---|---|
$MB_APPLMODAL | 0 | نوع التطبيق | 0x0 |
$MB_SYSTEMMODAL | 4096 | نوع النظام (تحتوي على أيقونة) | 0x1000 |
$MB_TASKMODAL | 8192 | نوع المهام | 0x2000 |
ملاحظات
-
يمكن استخدام أكثر من اعلام واحد في نفس الرسالة
مثلا
لنقل نريد إنشاء رسالة بزر OK وأيقونة معلومة ونوع الرسالة نظامية
طبعا هذا ممكن
وذالك بأن نفصل بين الاعلام والآخر بعلامة +
مثلا لنطبق ما قلناه
$MB_OK+$MB_ICONINFORMATION+$MB_SYSTEMMODAL - طبعا كما تعودنا يجب الفصل بين كل إعداد وآخر بعلامة الفاصلة
- عزيزي للتعريف بخيارات الدالة (الاعلام)
يمكن إستخدام إما الرقم وإما الإسم الثابت وإما الرمز البديل - إذا استخدمت الإسم الثابت فيجب استدعاء الملف المذكور أعلاه
كيف يمكنني ربط أزرار الدالة بمهام?
عزيزي المتابع إن دالة msgBox
هي دالة لا يمكنك ربطها بمهام لأن دورها هي إعلامك بالزر الذي تم ضغطه
وعلى هذا الأساس أنت تقم بربط مهامك
حسب النتيجة التي تعاد لك من الدالة
وفيما يلي قائمة النتائج التي ترجعها الدالة
طبعا سنتعرف على كيفية ربطها أسفله
الزر الذي تم ضغطه | النتيجة التي تعاد بالاسم الثابت | النتيجة التي تعاد بالرقم |
---|---|---|
OK | $IDOK | 1 |
CANCEL | $IDCANCEL | 2 |
ABORT | $IDABORT | 3 |
RETRY | $IDRETRY | 4 |
IGNORE | $IDIGNORE | 5 |
YES | $IDYES | 6 |
NO | $IDNO | 7 |
TRY AGAIN | $IDTRYAGAIN | 10 |
CONTINUE | $IDCONTINUE | 11 |
في حال تم إنقظاء مدة الوقت إن قمت بتحديدها ولم يضغط المستخدم على أي زر
فالنتيجة تكن -1
الربط بين النتيجة والمهام
عزيزي للربط بين الزر الذي ضغط والمهمة التي تريدها
هناك أكثر من طريقة وأنا سأستعرض معك أهم الطرق
طبعا عزيزي كنا قد تعرفنا على الحقل
switch وكيفية الاستفادة منه في الدروس السابقة
وكذا أمر التحديد
select
وأمر الشرط
if
وكما قلت لكم الدروس مترابطة مع بعضها
للقيام بهذه العملية ستفعل ما يلي
أولا انشاء الرسالة بإعداداتك التي تريدها
ثم قم بربطها مع متغير
فمثلا
local $msg = MSGBox($MB_OK+$MB_ICONINFORMATION+$MB_SYSTEMMODAL, ‘تجربة’, ‘مرحبا عزيزي هذه تجربة’, 0, ”)
إذا فعلنا هذا قيمة المتغير ستكن هي النتيجة التي عادت لنا من الدالة
ولربطها بأي مهمة باستخدام حقل التبديل
فنفعل كالتالي
switch $msg
case الناتج
ثم الأمر الذي نريده أن ينفذ
case الناتج الآخر
الأمر الذي نريده أن ينفذ
…
endSwitch
فبهذه الطريقة نكن قد ربطنا الرسالة بمهام
أما لربطها بحقل التحديد
select
فنفعل ما يلي
select
case $msg = الناتج
ثم الأمر الذي نريده أن ينفذ
case $msg = الناتج الآخر
الأمر الذي نريد…
endSelect
أما للربط بأوامر الشرط
فنفعل ما يلي
if $msg = الناتج then
ثم الأمر الذي نريده أن ينفذ
elseIf $msg = الناتج الآخر then
الأمر الذي نريد
…
EndIf
وهذه أهم الطرق التي تمكننا من الربط بين الرسالة والمهام
الأمثلة
عزيزي بعد ما تعرفنا على كل ما يخص الرسائل الحوارية
الآن علينا بتقديم أمثلة لما قمنا بالتعرف عنه
طبعا يمكنكم أخذ المثال كما هو ووضعه في ملف au3
لتجربته
المثال الأول
في هذا المثال
سننشئ رسالة فيها معلومة وزر OK
#include MSGBox($MB_OK+$MB_ICONINFORMATION+$MB_SYSTEMMODAL, "تجربة", "مرحبا عزيزي هذه تجربة", 0, "")
المثال الثاني
في هذا المثال سننشء رسالة محاورة فيها زرين
yes و no
وبأيقونة السؤال
ثم نربطها مع مثال:
#include local $MSG = MSGBox($MB_YESNO+$MB_ICONQUESTION+$MB_SYSTEMMODAL, "إظهار الرسالة", "مرحبا عزيزي, هل تحب إظهار الرسالة", 0, "") switch $msg case 6 MSGBox($MB_OK+$MB_ICONINFORMATION+$MB_SYSTEMMODAL, "نتيجة", "لقد إخترت ظهور الرسالة", 0, "") case 7 MSGBox($MB_OK+$MB_ICONINFORMATION+$MB_SYSTEMMODAL, "نتيجة", "لقد إخترت عدم ظهور الرسالة", 0, "") endSwitch
المثال الثالث
هو نفس المثال السابق
لاكن مع استعمال حقل التحديد
#include local $MSGBox = MSGBox($MB_YESNO+$MB_ICONQUESTION+$MB_SYSTEMMODAL, "إظهار الرسالة", "مرحبا عزيزي, هل تحب إظهار الرسالة", 0, "") select case $MSGBox = 6 MSGBox($MB_OK+$MB_ICONINFORMATION+$MB_SYSTEMMODAL, "نتيجة", "لقد إخترت ظهور الرسالة", 0, "") case $MSGBox = 7 MSGBox($MB_OK+$MB_ICONINFORMATION+$MB_SYSTEMMODAL, "نتيجة", "لقد إخترت عدم ظهور الرسالة", 0, "") endSelect
المثال الرابع
هو نفس المثالين السابقين
لاكن مع استعمال حقل الشرط
#include local $MSGBox = MSGBox($MB_YESNO+$MB_ICONQUESTION+$MB_SYSTEMMODAL, "إظهار الرسالة", "مرحبا عزيزي, هل تحب إظهار الرسالة", 0, "") if $MSGBox = 6 then MSGBox($MB_OK+$MB_ICONINFORMATION+$MB_SYSTEMMODAL, "نتيجة", "لقد إخترت ظهور الرسالة", 0, "") elseIf $MSGBox = 7 then MSGBox($MB_OK+$MB_ICONINFORMATION+$MB_SYSTEMMODAL, "نتيجة", "لقد إخترت عدم ظهور الرسالة", 0, "") endIf
خاتمة
عزيزي المتابع
ها قد وصلنا لنهاية هذا الدرس
الذي أرجو أن يكن مفيد
وأن يكن سهل ومفهوم
ولأي سؤال, استفسار, أو طلب.
يسعدني استقبالها سواءا على التعليقات أم في قسم الأسئلة الخاص باللغة.
أرجوك عزيزي الزائر لا تنسا أخوك ناصر بعزيز من دعائك الصالح
فأنا بأمس الحاجة إليه.
كما أرجو نشر الدورة حتى تعم الفائدة
وكما تعودناالدرس السابع سيكن متوفر قريبا على
هذا الرابط
ومسك الختام السلام
فالسلام عليكم ورحمة الله تعالى وبركاته