مناقشة النماذج مرة أخرى
بالإضافة إلى مبادئ تصميم النموذج، تحتاج أيضًا إلى التفكير في المكان الذي يبدأ فيه تطبيقك وينتهي فيه. هناك بعض التقنيات لتحديد الشكل الذي سيبدو عليه تطبيقك عند بدء تشغيله. من المهم أيضًا أن تكون على دراية ببعض عمليات المعالجة التي تحدث عند إلغاء تثبيت أحد التطبيقات.
تعيين نموذج بدء التشغيل
افتراضيًا، يتم تعيين النموذج الأول في التطبيق كنموذج بدء التشغيل. يتم عرض هذا النموذج عند بدء تشغيل التطبيق (لذا فإن الكود الأول الذي سيتم تنفيذه هو الكود الموجود في حدث Form_Initialize الخاص بالنموذج). إذا كنت تريد عرض نموذج آخر عند بدء تشغيل التطبيق، فيجب عليك تغيير نموذج بدء التشغيل.
لتغيير نموذج بدء التشغيل، اتبع الخطوات التالية:
1. من قائمة المشروع، حدد خصائص المشروع.
2. حدد "عام".
3. في مربع القائمة "كائن بدء التشغيل"، حدد النموذج ليكون نموذج بدء التشغيل الجديد.
4. حدد موافق.
ابدأ بدون نموذج بدء التشغيل
في بعض الأحيان قد ترغب في بدء التطبيق دون تحميل أي نماذج. على سبيل المثال، قد ترغب في تشغيل تعليمات برمجية تقوم بتحميل ملف بيانات ثم تحديد أي من النماذج المختلفة التي سيتم عرضها بناءً على محتويات ملف البيانات. للقيام بذلك، قم بإنشاء عملية فرعية تسمى Main في الوحدة القياسية، كما هو موضح في المثال التالي.
فرعي ()
DimintStatusAsInteger
"استدعاء إجراء وظيفي للتحقق من حالة المستخدم."
intStatus=GetUserStatus
'عرض نموذج بدء التشغيل بناءً على الحالة.
IfintStatus=1ثم
frmMain.Show
آخر
frmPassWord.Show
EndIf
يجب أن يكون هذا الإجراء إجراءً فرعيًا ولا يمكن أن يكون ضمن وحدة نمطية للنموذج. لتعيين عملية SubMain ككائن بدء التشغيل، حدد "خصائص المشروع" من قائمة "المشروع"، ثم حدد "عام"، ثم حدد "SubMain" من مربع "كائن بدء التشغيل".
إظهار العرض السريع عند بدء التشغيل
إذا كانت هناك عملية تنفيذ طويلة عند بدء التشغيل، مثل تحميل كمية كبيرة من البيانات من قاعدة بيانات أو تحميل بعض الصور النقطية الكبيرة، فقد ترغب في تقديم عرض سريع عند بدء التشغيل. العرض السريع هو نموذج يعرض عادةً محتوى مثل اسم التطبيق ومعلومات حقوق النشر وصورة نقطية بسيطة. الشاشة التي يتم عرضها عند بدء تشغيل Visual Basic هي شاشة عرض سريعة.
لعرض عرض سريع، تحتاج إلى استخدام عملية SubMain ككائن بدء التشغيل واستخدام طريقة العرض لعرض النموذج:
برايفاتسوبمين ()
"إظهار العرض السريع."
frmSplash.Show
'أضف عملية بدء التشغيل هنا.
...
'إظهار النموذج الرئيسي وإلغاء تحميل العرض السريع.
frmMain.Show
إلغاء تحميلfrmSplash
EndSub
يمكن أن يجذب العرض السريع انتباه المستخدم عند تنفيذ بعض إجراءات بدء التشغيل، مما يعطي وهمًا بأن التطبيق يتم تحميله بسرعة. عند اكتمال إجراءات بدء التشغيل هذه، يمكن تحميل النموذج الأول وعرضه بدون تحميله بسرعة.
بالنسبة لتصميمات العرض السريع، اجعلها بسيطة قدر الإمكان. إذا كنت تستخدم عددًا كبيرًا من الصور النقطية أو عددًا كبيرًا من عناصر التحكم، فسيتم تحميل العرض السريع نفسه ببطء.
إنهاء التطبيق
تتوقف التطبيقات المستندة إلى الأحداث عن العمل عند إغلاق كافة النماذج وعدم تنفيذ أي تعليمات برمجية. إذا كانت لا تزال هناك نماذج مخفية عند إغلاق آخر نموذج مرئي، فيبدو أن التطبيق قد انتهى (نظرًا لعدم وجود نماذج مرئية)، ولكن في الواقع يستمر التطبيق في العمل حتى يتم إغلاق كافة النماذج المخفية. يحدث هذا لأن أي وصول إلى خصائص أو عناصر تحكم النموذج الذي تم إلغاء تحميله سيؤدي إلى تحميل هذا النموذج ضمنيًا وبصمت.
أفضل طريقة لتجنب هذا النوع من المشاكل عند إغلاق التطبيق هي التأكد من إلغاء تحميل كافة النماذج. إذا كان هناك أكثر من نموذج واحد، يمكنك استخدام مجموعة النماذج وعبارة Unload. على سبيل المثال، يمكن استخدام زر أمر يسمى cmdQuit في النموذج الرئيسي للخروج من البرنامج. إذا كان التطبيق يحتوي على نموذج واحد فقط، فيمكن أن يكون إجراء حدث Click ببساطة:
PrivateSubcmdQuit_Click()
UnloadMe
EndSub
إذا كان التطبيق الخاص بك يستخدم نماذج متعددة، فيمكنك إلغاء تحميل هذه النماذج عن طريق وضع التعليمات البرمجية في إجراء حدث إلغاء التحميل الخاص بالنموذج الرئيسي. يمكنك استخدام مجموعة النماذج للتأكد من العثور على كافة النماذج وإغلاقها. يستخدم التعليمة البرمجية التالية مجموعة النماذج لإلغاء تحميل كافة النماذج:
PrivateSubForm_Unload(CancelAsInteger)
Dimiasinteger
'قم بالمراجعة عبر مجموعة النماذج وقم بإلغاء تحميل كل نموذج.
Fori=Forms.Count-1to0Step-1
تفريغ النماذج (ط)
التالي
EndSub
توجد بعض المواقف حيث يكون من الضروري إنهاء التطبيق بغض النظر عن حالة النماذج أو الكائنات الموجودة. لهذا الغرض، يوفر Visual Basic عبارة النهاية.
تؤدي عبارة End إلى إنهاء التطبيق فورًا: لن يتم تنفيذ التعليمات البرمجية الموجودة بعد عبارة End، ولن تحدث أي أحداث أخرى. على وجه الخصوص، لن يقوم Visual Basic بتنفيذ أي من إجراءات الأحداث QueryUnload أو Unload أو Terminate الخاصة بالنموذج. سيتم تحرير كل مرجع إلى الكائن، ولكن إذا قمت بتعريف الفئات الخاصة بك، فلن يقوم Visual Basic بتنفيذ حدث الإنهاء للكائنات التي تم إنشاؤها بواسطة هذه الفئات.
بالإضافة إلى عبارة End، يمكن لعبارة Stop إيقاف التطبيق مؤقتًا. ومع ذلك، يمكن استخدام عبارة Stop فقط أثناء التصحيح لأنها لا تحرر المرجع إلى الكائن.
لمزيد من المعلومات حول عبارة Stop، راجع "استخدام وضع المقاطعة" في الفصل 13، و"تصحيح التعليمات البرمجية ومعالجة الأخطاء"، و"بيان الإيقاف" في مرجع اللغة. للحصول على معلومات حول مجموعات النماذج أو تحرير مراجع الكائنات، راجع الفصل 9، "البرمجة باستخدام الكائنات".
استخدام القوائم في التطبيقات
تتكون العديد من التطبيقات البسيطة من نموذج وعدد قليل من عناصر التحكم فقط، ولكن يمكن تحسين وظائف تطبيق Visual Basic عن طريق إضافة القوائم. يشرح هذا القسم كيفية إنشاء القوائم واستخدامها في تطبيقك.
إنشاء قوائم باستخدام محرر القائمة
استخدم محرر القائمة لإنشاء قوائم وأشرطة قوائم جديدة، وإضافة أوامر جديدة إلى القوائم الموجودة، واستبدال أوامر القائمة الموجودة بأوامرك الخاصة، وتعديل القوائم وأشرطة القوائم الموجودة وحذفها.
لعرض محرر القائمة:
من القائمة "أدوات"، اختر "محرر القائمة".
-أو-
انقر فوق الزر "محرر القائمة" الموجود على شريط الأدوات. سيؤدي هذا إلى فتح محرر القائمة، كما هو موضح في الشكل 6.7.
على الرغم من أنه يمكن تعيين معظم خصائص التحكم في القائمة باستخدام محرر القائمة، إلا أن جميع خصائص القائمة متاحة أيضًا في نافذة الخصائص. أهم خاصيتين للتحكم في القائمة هما:
الاسم - هذا هو الاسم المستخدم للإشارة إلى عنصر تحكم القائمة في التعليمات البرمجية.
التسمية التوضيحية - هذا هو النص الذي يظهر في عنصر التحكم.
الخصائص الأخرى في محرر القائمة، بما في ذلك الفهرس، والفحص، والتفاوض على الموضع، سيتم وصفها لاحقًا في هذا الفصل.
استخدام مربع القائمة في محرر القائمة
يسرد مربع قائمة عناصر التحكم في القائمة (الموجود في الجزء السفلي من محرر القائمة) جميع عناصر التحكم في القائمة للنموذج الحالي. عند كتابة عنصر قائمة في مربع نص العنوان، يظهر العنصر أيضًا في مربع قائمة التحكم في القائمة. حدد عنصر تحكم قائمة موجود من مربع القائمة لتحرير خصائص عنصر التحكم.
على سبيل المثال، يوضح الشكل 6.7 عناصر التحكم المتنوعة في القائمة "ملف" في تطبيق نموذجي. يحدد موضع عنصر تحكم القائمة في مربع قائمة التحكم في القائمة ما إذا كان عنصر التحكم هو عنوان قائمة، أو عنصر قائمة، أو عنوان قائمة فرعية، أو عنصر قائمة فرعية:
يظهر عنصر تحكم القائمة الموجود على يسار مربع القائمة في شريط القائمة كعنوان للقائمة.
لن يظهر عنصر تحكم القائمة ذي المسافة البادئة في مربع القائمة إلا في القائمة عند النقر فوق عنوان القائمة الرئيسية الخاص به.
يصبح عنصر تحكم القائمة الذي تم وضع مسافة بادئة له، إذا تبعته بعض عناصر التحكم في القائمة التي تم وضع مسافة بادئة لها مرة أخرى، عنوانًا لقائمة فرعية. كل عنصر تحكم في القائمة يتم وضع مسافة بادئة له أسفل عنوان القائمة الفرعية يصبح عنصر القائمة في تلك القائمة الفرعية.
يظهر عنصر تحكم القائمة باستخدام الواصلة (-) كخاصية التسمية التوضيحية الخاصة به كشريط فاصل. تقوم الأشرطة الفاصلة بتقسيم عناصر القائمة إلى مجموعات منطقية. لاحظ أنه لا يمكن استخدام عنصر تحكم القائمة كشريط فاصل إذا كان عنوان قائمة، أو يحتوي على عناصر قائمة فرعية، أو تم تحديده أو تعطيله، أو يحتوي على مفتاح اختصار.
لإنشاء عنصر تحكم القائمة في محرر القائمة، اتبع الخطوات التالية:
1.اختر النموذج
2. من القائمة "أدوات"، اختر "محرر القائمة". -أو- انقر فوق الزر "محرر القائمة" الموجود على شريط الأدوات.
3. في مربع نص العنوان، اكتب النص الذي تريد ظهوره على شريط القائمة لعنوان القائمة الأول. إذا كنت تريد أن يصبح حرف معين هو مفتاح الوصول لعنصر القائمة، فيمكنك أيضًا إضافة حرف (&) أمام الحرف. في القوائم، يتم وضع خط تحت هذا الحرف تلقائيًا.
يظهر نص عنوان القائمة في مربع قائمة التحكم في القائمة.
4. في مربع النص الاسم، اكتب الاسم الذي سيتم استخدامه للإشارة إلى عنصر تحكم القائمة في التعليمات البرمجية. راجع "عناوين القائمة وإرشادات التسمية" لاحقًا في هذا الفصل.
5. انقر فوق زر السهم لليسار أو لليمين لتغيير مستوى المسافة البادئة لعنصر التحكم.
6. إذا لزم الأمر، يمكنك أيضًا تعيين خصائص أخرى لعنصر التحكم. يمكن تنفيذ هذا العمل في محرر القائمة أو لاحقًا في نافذة "الخصائص".
7. حدد "التالي" لإنشاء عنصر تحكم آخر في القائمة. -أو- انقر فوق "إدراج" لإضافة عنصر تحكم القائمة بين عناصر التحكم الموجودة. يمكنك أيضًا النقر فوق زري الأسهم لأعلى ولأسفل لنقل عناصر التحكم بين عناصر التحكم الموجودة في القائمة.
8. إذا تم إنشاء كافة عناصر التحكم في القائمة الخاصة بالنموذج، فحدد "موافق" لإغلاق محرر القائمة. سيتم عرض عنوان القائمة التي تم إنشاؤها في النموذج. في وقت التصميم، انقر فوق عنوان القائمة لإسقاط عنصر القائمة المقابل له.
عناصر قائمة منفصلة
يظهر شريط فاصل في القائمة كخط أفقي بين عناصر القائمة. في القائمة التي تحتوي على العديد من العناصر، يمكنك استخدام الأشرطة الفاصلة لتقسيم العناصر إلى مجموعات منطقية. على سبيل المثال، تستخدم قائمة "التعليمات" في Visual Basic أشرطة فواصل لتقسيم عناصر القائمة إلى ثلاث مجموعات، كما هو موضح في الشكل 6.8.
لإنشاء شريط فاصل في محرر القائمة، اتبع الخطوات التالية:
1. إذا كنت تريد إضافة شريط فاصل إلى قائمة موجودة، فحدد "إدراج" وأدخل عنصر تحكم القائمة بين عناصر القائمة التي تريد فصلها.
2. إذا لزم الأمر، انقر فوق زر السهم الأيمن لوضع مسافة بادئة لعنصر القائمة الجديد على نفس مستوى عنصر القائمة المنفصل عنه.
3. اكتب واصلة (-) في مربع نص العنوان.
4. قم بتعيين سمة "الاسم".
5. حدد موافق لإغلاق محرر القائمة.
لاحظ أنه على الرغم من إنشاء الأشرطة الفاصلة كعناصر تحكم في القائمة، إلا أنها لا تستجيب لأحداث النقر ولا يمكن تحديدها.
تعيين مفاتيح الوصول ومفاتيح الاختصار
قم بتحسين وصول لوحة المفاتيح إلى أوامر القائمة عن طريق تحديد مفاتيح الوصول ومفاتيح الاختصار.
مفتاح الوصول
تسمح مفاتيح الوصول بالضغط على مفتاح ALT وكتابة حرف محدد لفتح القائمة. بمجرد فتح القائمة، يمكن تحديد عنصر التحكم بالضغط على الحرف المخصص (مفتاح الوصول). على سبيل المثال، اضغط على المفتاح ALT E لفتح القائمة "تحرير"، ثم اضغط على المفتاح P لتحديد عنصر القائمة "لصق". في عنوان عنصر تحكم القائمة، يظهر مفتاح الوصول المحدد كحرف تحته خط، كما هو موضح في الشكل 6.9.
لتعيين مفاتيح الوصول لعناصر التحكم في القائمة في محرر القائمة، اتبع الخطوات التالية:
1. حدد عنصر القائمة الذي سيتم تعيين مفتاح الوصول إليه.
2. في مربع العنوان، اكتب الحرف (&) مباشرةً أمام الحرف الذي تريد استخدامه كمفتاح وصول.
على سبيل المثال، إذا كانت قائمة التحرير الموضحة في الشكل 6.9 مفتوحة، فإن قيمة إعدادات خاصية التسمية التوضيحية التالية تستجيب للمفتاح المقابل.
لاحظ أنه لا يمكن استخدام مفاتيح الوصول المكررة في القوائم. إذا كانت عناصر قائمة متعددة تستخدم نفس مفتاح الوصول، فلن يكون للمفتاح أي تأثير. على سبيل المثال، إذا كان C هو مفتاح الوصول لكل من "القص" و"النسخ"، فعندما تحدد قائمة "تحرير" وتكتب C، سيتم تحديد أمر "نسخ"، ولكن فقط بعد الضغط على مفتاح ENTER، سيتم تحديد الأمر "نسخ" application سيتم تنفيذ هذا الأمر. ولن يتم تنفيذ أمر "القطع" على الإطلاق.
مفتاح الاختصار
سيقوم مفتاح الاختصار بتشغيل عنصر القائمة على الفور عند الضغط عليه. يمكنك تعيين مفتاح اختصار لعناصر القائمة المستخدمة بشكل متكرر، مما يوفر طريقة للوصول إلى لوحة المفاتيح بخطوة واحدة، بدلاً من الطريقة المكونة من ثلاث خطوات المتمثلة في الضغط باستمرار على المفتاح ALT، والضغط على عنوان القائمة للوصول إلى الحرف، ثم الضغط على القائمة العنصر للوصول إلى الشخصية. يتضمن تعيين مفاتيح الاختصار مجموعة من مفاتيح الوظائف ومفاتيح التحكم، مثل مفتاح CTRL F1 أو مفتاح CTRL A. وتظهر على يمين عنصر القائمة المقابل في القائمة، كما هو موضح في الشكل 6.10.
لتعيين مفتاح اختصار لعنصر القائمة، اتبع الخطوات التالية:
1. افتح "محرر القائمة".
2. حدد عنصر القائمة هذا.
3. حدد مفتاح وظيفة أو مجموعة مفاتيح في مربع التحرير والسرد "مفتاح الاختصار".
لإزالة تعيين مفتاح الاختصار، حدد "(لا شيء)" في أعلى القائمة.
لاحظ أن مفتاح الاختصار سيظهر تلقائيًا في القائمة، وبالتالي ليست هناك حاجة لكتابة مفتاح CTRL في مربع العنوان بمحرر القائمة.
عناوين القائمة وإرشادات التسمية
للحفاظ على الاتساق مع التطبيقات الأخرى، من الجيد اتباع إرشادات التسمية المعمول بها عند إنشاء القوائم.
تعيين خاصية التسمية التوضيحية
عند تعيين قيم العنوان لعناصر القائمة، يجب عليك محاولة اتباع الإرشادات التالية:
1. يجب أن تكون أسماء العناصر الموجودة في القائمة فريدة، ولكن يمكن أن تحمل عناصر الإجراءات المماثلة في قوائم مختلفة نفس الاسم.
2. يمكن أن يكون اسم المشروع كلمة أو كلمة مركبة أو عدة كلمات.
3. يجب أن يكون لكل اسم مشروع حرف وصول فريد للذاكرة لتحديد الأوامر باستخدام لوحة المفاتيح. يجب أن يكون حرف الوصول هو الحرف الأول من عنوان القائمة، إلا إذا كان هناك حرف آخر يسهل تذكره؛ فلا يمكن لعنواني القائمة استخدام نفس حرف الوصول. لمزيد من المعلومات حول تعيين مفاتيح الوصول ومفاتيح الاختصار، راجع قسم "إنشاء القوائم باستخدام محرر القائمة" سابقًا في هذا الفصل.
4. إذا كان الأمر يتطلب معلومات إضافية قبل اكتماله، فيجب أن تكون هناك علامة حذف (...) بعد اسمه، مثل الأمر الذي يعرض مربع حوار ("حفظ باسم..."، "التفضيلات...") .
5. اجعل اسم المشروع قصيرًا قدر الإمكان. إذا تم ترجمة التطبيق، فسيزيد طول الكلمة بنسبة 30 بالمائة تقريبًا في إصدار اللغة الأجنبية، مما قد لا يسمح بمساحة كافية لسرد عناصر القائمة الفردية. لمزيد من التفاصيل حول توطين التطبيقات، راجع الفصل 16، "التوزيع الدولي".
اصطلاح تسمية القائمة
لجعل التعليمات البرمجية الخاصة بك أكثر قابلية للقراءة والصيانة، من الجيد اتباع اصطلاح التسمية المعمول به عند تعيين خاصية الاسم في محرر القائمة. توصي معظم قواعد اصطلاحات التسمية بتعريف الكائن ببادئة (أي، mnu لعنصر تحكم القائمة)، متبوعة باسم قائمة المستوى الأعلى (مثل ملف). بالنسبة للقوائم الفرعية، يتبع ذلك عنوان القائمة الفرعية (مثل mnuFileOpen).
لمزيد من المعلومات ، راجع الملحق ب، "اصطلاحات ترميز Visual Basic" للحصول على أمثلة لاصطلاحات التسمية الموصى بها. راجع "اصطلاحات الترميز VisualBasic" للحصول على أمثلة لاصطلاحات التسمية الموصى بها.
->