منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : الدرس الثالث - التعامل مع 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
والملف سيرفق بعد الدرس القادم بإذن الله .


والله الموفق ...
والسلام عليكم ورحمة الله وبركاته .