الدرس الثالث : التعامل مع MDI Forms وتكوين القوائم
________________________________________
بسم الله الرحمن الرحيم .
السلام عليكم ورحمة الله وبركاته .
*** منذ هذا الدرس فصاعداً وحى نهاية هذه الدورة سنعمل بإذن الله من خلال برنامج فيجوال بيسك
Visual Basic .
أولاً : القوائم
Menues .
إن إحدى أهداف التحليل لأي برنامج هو معرفة مهام هذا البرنامج بالضبط وبالتالي امكانية تكوين القوائم وشاشات البرنامج دون خوف من امكانية التعديل فيها لاحقاً - إلا قليلاً - ، ومن تحليلنا السابق نستطيع تجميع كل مجموعة متشابهه من المهام تحت قائمة رئيسية واحدة ، وذلك بالشكل التالي :
ملف : عرض البضائع - تعليمات الاستخدام - حول البرنامج - انهاء .
اضافة : اضافة بضاعة جديدة - مورد جديد - نوع جديد .
تقارير : تقارير البضائع - تقارير الموردين - تقارير الأنواع - تقارير سريعة : ( التقرير اليومي - تقرير بين تاريخين ) .
مهام : عملية بيع - عملية شراء - مسح ( كافة البضائع - كافة الموردين - كافة الأنواع - عمليات البيع - عمليات الشراء ) - التحكم بعمليات المبيعات .
بحث : البحث عن البضائع .
أدوات : تغيير معلومات المحل - تغيير كلمة المرور - النسخ الاحتياطي ( عمل نسخة احتياطية - استيراد نسخة احتياطية ) - تجهيز الطابعة - آلة حاسبة .
*** بعض هذه العناصر لا علاقة لها بقواعد البيانات بل قد تكون بناء على طلب من المستخدم ، مثل ( آلة حاسبة ) أو من المسلمات في برامج قواعد البيانات مثل ( عمل نسخة احتياطية ) .
سنقوم الآن بمعرفة أنوع الواجهات في فيجوال بيسك ، بعد ذلك سوف نقوم باضافة القوائم إلى واجهة البرنامج الرئيسية .
ثانياً : الشاشات والنماذج في فيجوال بيسك .
عندما تختار اضافة نافذة Form جديدة إلى برنامجك من خلال قائمة Project - Add Form ، فإنك تلاحظ ظهور شاشة تحتوي على العديد من أشكال النماذج ، ومن اشهرها استخداماً Form بينما يمكنك التحويل إلى باقي الأشكال من خلال الخاصية Border Style والتي تحدد طبيعة شكل هذا النموذج فمثلاً إذا قمت باختيار :
0 - None
فإن هذا يعطيك نموذجاً خالياً من شريط العنوان والأدوات ، غير ممكن تحريكه إلا بواسطة بعض الأوامر الا باستخدام بعض دوال API والتي تتيح لك تحريك الفورم من أي مكان . وهكذا ...
على أن هذه النوعية تشترك في أنها نوافذ لا يمكن أن تحتضن بداخلها نوافذ أخرى ، وبمعنى آخر فإنه لا يمكن عرض نافذة أخرى بداخلها بصورة تلقائية ، بل إنك إذ ذاك ستكون مضطراً لاستخدام بعض دوال API لوضعهما على هذا النحو دون الحصول على نافذة حاضنة بنسبة 100% .
لعمل مثل تلك النافذة من Project قم باختيار MDI Form ، ولن يتيح لك الفيجوال بيسك 6 سوى اضافة نافذة واحدة فقط من هذا النوع ، وفي الواقع لن تكون مضطراً لاستخدام أكثر من MDI Form في برنامج واحد في الغالب ، إلا أنك قد تحتاج لها فقط في حالة وجود أكثر من برنامج فرعي تحت البرنامج الرئيسي مثلاً .
ما هي نوافذ
MDI ولماذا نستخدمها ؟
نستخدم هذه النافذة كنافذة حاضنة ، بمعني أن هذه النافذة لن تحتوي سوى على القوائم واختصارات سريعة فقط ... أما المحتويات الأخرى فهي عبارة عن نوافذ أخرى تعرض داخل النافذة الأولى .
ميزة هذه النافذة أنها غالباً ما لا تحتوي على أي شيء ، لهذا نضعها دائماً أكبر ما يمكن ونضع أحجام النوافذ داخلها ثابتة .
وعند تغيير أسلوب العرض سوف تكبر هذه النافذة دون التأثير على النوافذ الداخلية ، مما يملئ الشاشة دون التأثر بعيوب تغيير الدقة Reslution في هذه الحالة .
عيوب نماذج
MDI :
* لا يمكن وضع أي أدوات عليها سوى أداة Picture وبالإمكان التحايل على هذا الأمر باضافة الأدوات التي نريدها داخل Picture .
* لا يمكن وجود أكثر من نموذج MDI في البرنامج الواحد - من عيوب فيجوال بيسك والتي تم تلافيها في .net - .
اضافة نماذج
MDI Form الخاصة بنا .
قم بتشغيل برنامج فيجوال بيسك ... وكما هي العادة سيظهر فورم عادي ... اضغط عليه بزر الماوس اليمين ، اختر New ومن ثم MDI Form .
نريد لهذه الشاشة أن تكون أكبر ما يمكن كما أسلفنا ، لذا اختر من WindowState القيمة 2-Maximized .
الآن سوف نقوم بجعل الفورم الأول محتوياً في داخلها ... لذا اذهب إليه واختر القيمة True للخاصية MDIChild .
جرب تشغيل البرنامج ولاحظ التنفيذ .
هذه هي شاشتنا الرئيسية والتي سوف نعمل عليها ... لذا سنقوم باضافة قوائم بالمهام التي نريدها .
وقبل البدء في اضافة القوائم
كما أنه من الشائع - نسبياً وفي بعض الاحيان فقط - أن توضع كل قائمة باسم واحد فقط و Index متغير بحيث أن قائمة ملف تأخذ الاسنم M_File1 وتأخذ قائمة ( حول البرنامج ) الفرعية من القائمة الأولى باسم File ولكن بالإيندكس 0 كما أن ( تعليمات ) تأخذ الاسم File ب Index=1... وهكذا . وسوف نتعلم كيفية التعامل مع Index في عجالة بسيطة في آخر هذا الدرس .
ولا تستخدم هذه الطريقة في العادة إلا إذا لم تكن القوائم تحتوي إلا على استدعاءات لدوال مثلاً أو مجرد اظهار شاشات جديدة ، وهذا هو أغلب ما يوجد في برنامجنا .
سنقوم الآن باضافة القوائم التي حدناها في أول هذا الدرس .
ثم نقوم باضافة بعض الاختصارات السريعة للمهام الرئيسية مثل Ctrl+F4 للخروج ، F1 لحول البرنامج و F2 للتعليمات ، Ctrl+S لعملية بيع و Ctrl+B لعملية شراء ، وبعض الاختصارات التي سوف تجدها في الملف المرفق .
لا تنس ضبط خاصية Right To Left = True من أجل دعم اتجاهات اللغة العربية .
والآن لنأخذ مثالاً سريعاً على كيفية استخدام القوائم .
عندما نضع امراً ما في File على سبيل المثال فهناك احتمال لأن يكون الزر المضعوط هو ( حول - تعليمات - البضائع - انهاء ) لأن لهم نفس الاسم جميعاً ، ومن أجل ذلك فهناك متغير اسمه Index يحتوي على رقم Index وهو أحد بارميترات دالة Click .
ونستطيع عمل العملية المطلوبة لاحقاً باستخدام هذه الخاصية ، ضع الكود التالي في زر File . والذي يوضح طرق استخدام Index .
رمز:
Private Sub File_Click(Index As Integer)
Select Case Index
Case 0
MsgBox "View Product"
Case 5
End
Case Else
MsgBox File(Index).Caption
End Select
End Sub
والملف سيرفق بعد الدرس القادم بإذن الله .
والله الموفق ...
والسلام عليكم ورحمة الله وبركاته .