توفير القيم الافتراضية للمعلمات الاختيارية
يمكنك أيضًا تحديد القيم الافتراضية للمعلمات الاختيارية. في المثال التالي، إذا لم يتم تمرير المعلمات الاختيارية إلى إجراء الدالة، فسيتم إرجاع قيمة افتراضية.
SubListText(xAsString,OptionalyAs_
عدد صحيح = 12345)
List1.AddItemx
List1.AddItemy
EndSub
PRivateSubCommand1_Click()
strName=yourname 'لم يتم توفير المعلمة الثانية.
CallListText(strName) 'أضف "اسمك" و"12345".
EndSub
استخدام عدد غير محدد من المعلمات بشكل عام، يجب أن يساوي عدد المعلمات في استدعاء الإجراء عدد المعلمات في وصف الإجراء. يمكنك استخدام الكلمة الأساسية ParamArray للإشارة إلى أن الإجراء سيقبل أي عدد من المعلمات. لذا يمكنك كتابة الدالة Sum لحساب المجموع مثل هذا:
DimxAsInteger
DimyAsInteger
DimintSumAsInteger
SubSum(ParamArrayintNums())
ForEachxInintNums
ص=yx
نيكستكس
intSum=y
EndSub
PrivateSubCommand1_Click()
مجموع 1،3،5،7،8
List1.AddItemintSum
EndSub
قم بإنشاء عبارات بسيطة باستخدام المعلمات المسماة
بالنسبة للعديد من الوظائف والبيانات والأساليب المضمنة، يوفر Visual Basic أساليب معلمات مسماة لتمرير قيم المعلمات بسرعة. بالنسبة للمعلمات المسماة، يمكن توفير أي عدد من المعلمات بأي ترتيب عن طريق تعيين قيم للمعلمات المسماة. للقيام بذلك، اكتب الوسيطة المسماة، متبوعة بنقطتين، وعلامة المساواة، والقيمة (MyArgument:=SomeValue)، ويمكن ترتيب هذه التعيينات بأي ترتيب، مفصولة بفواصل. لاحظ أن ترتيب المعلمات في المثال التالي عكس ترتيب المعلمات المطلوبة:
وظيفةListText(strNameAsString،OptionalstrAddressAsString)
List1.AddItemstrName
List2.AddItemstrAddress
EndSub
PrivateSubCommand1_Click()
ListTextstrAddress:=12345,strName:=YourName
EndSub
يكون ما ورد أعلاه أكثر فائدة إذا كان الإجراء يحتوي على العديد من المعلمات الاختيارية التي لا يلزم تحديدها دائمًا.
تأكيد الدعم للمعلمات المسماة
لتحديد الوظائف والبيانات والأساليب التي تدعم المعلمات المسماة، استخدم وظيفة AutoQuickInfo في نافذة Code، أو تحقق من Object Browser، أو راجع مرجع اللغة. ضع النقاط التالية في الاعتبار عند استخدام المعلمات المسماة:
لا تعتمد أساليب الكائنات الموجودة في مكتبة كائنات Visual Basic (VB) المعلمات المسماة. تدعم كافة الكلمات الأساسية للغة في مكتبة كائنات Visual Basic for Applications (VBA) المعلمات المسماة.
في بناء الجملة، تظهر المعلمات المسماة بالخط العريض والمائل. كافة المعلمات الأخرى مكتوبة بالخط المائل فقط.
من المهم ملاحظة أنه عند استخدام المعلمات المسماة، لا يمكنك حذف إدخال المعلمات المطلوبة. يمكن حذف المعلمات الاختيارية فقط. بالنسبة لمكتبات كائنات Visual Basic (VB) وVisual Basic for Applications (VBA)، فإن مربع الحوار Object Browser يحتوي على معلمات اختيارية بين قوسين مربعين [].
راجع ByVal وByRef وOptional وParamArray في مرجع اللغة للحصول على التفاصيل .
نظرة عامة على هيكل التحكم
مع هيكل التحكم، يمكن التحكم في تدفق تنفيذ البرنامج. إذا لم يتم التحقق من عبارات التحكم في التدفق، فسيتم تشغيل البرنامج من خلال هذه العبارات من اليسار إلى اليمين ومن الأعلى إلى الأسفل. يمكن كتابة بعض البرامج البسيطة بتدفق أحادي الاتجاه فقط، ويمكن التحكم في بعض التدفق عن طريق أسبقية المشغل، ولكن فعالية وفائدة أي لغة برمجة تأتي من قدرتها على تغيير ترتيب البيانات من خلال الهياكل والحلقات.
هيكل القرار
يمكن لإجراءات Visual Basic اختبار التعبيرات الشرطية ثم تنفيذ إجراءات مختلفة بناءً على نتائج الاختبار.
بنيات القرار التي يدعمها Visual Basic هي:
1.إذا...ثم
2.إذا...ثم...إلا
3. حدد الحالة
إذا...ثم
استخدم البنية If...Then لتنفيذ عبارة واحدة أو أكثر بشكل مشروط. يمكن استخدام كل من بناء الجملة أحادي السطر وبناء جملة الكتلة متعدد الأسطر:
IfconditionThenstatement
إذا الشرطثم
البيانات
EndIf
الشرط عادة ما يكون مقارنة، ولكن يمكن أن يكون أي تعبير يحسب قيمة رقمية. يفسر Visual Basic هذه القيمة كـ True أو False: القيمة الصفرية هي False، وتعتبر أي قيمة غير صفرية True. إذا كان الشرط صحيحاً، يقوم Visual Basic بتنفيذ كافة العبارات التي تتبع الكلمة الأساسية ثم. يمكنك تنفيذ عبارة بشكل مشروط باستخدام بناء جملة من سطر واحد أو متعدد الأسطر (المثالان التاليان متكافئان):
IfanyDate<NowThenanyDate=الآن
IfanyDate<NowThen
AnyDate=الآن
EndIf
ملاحظة: تنسيق السطر المفرد لـ If...Then لا يستخدم عبارة EndIf. إذا كنت تريد تنفيذ أسطر متعددة من التعليمات البرمجية عندما يكون الشرط صحيحًا، فيجب عليك استخدام بناء الجملة متعدد الأسطر If...Then...EndIf.
IfanyDate<NowThen
AnyDate=الآن
Timer1.Enabled=False 'تم تعطيل التحكم في المؤقت.
EndIf
إذا...ثم...إلا
قم بتعريف العديد من كتل العبارات باستخدام كتل If...Then...Else وقم بتنفيذ إحدى العبارات:
إذا الشرط1ثم
[كتلة البيان-1]
[ElseIfcondition2Then
[البيان-2]]...
[آخر
[statementblock-ن]]
EndIf
اختبارات Visual Basic الأولى condition1. إذا كان خطأ، يقوم Visual Basic باختبار الشرط 2، وهكذا، حتى يعثر على الشرط الذي يكون صحيحًا. عندما يعثر على شرط صحيح، يقوم Visual Basic بتنفيذ كتلة العبارة المقابلة ثم يقوم بتنفيذ التعليمات البرمجية التالية EndIf. كخيار، يمكنك تضمين كتلة عبارة Else التي ينفذها Visual Basic إذا لم يكن أي من الشروط صحيحًا.
إذا... إذن... ElseIf هي مجرد حالة خاصة لـ If... إذن... Else. لاحظ أنه يمكنك استخدام أي عدد من عبارات ElseIf، أو لا شيء على الإطلاق. يمكن أن يكون هناك جملة Else بغض النظر عما إذا كانت هناك جملة ElseIf أم لا.
على سبيل المثال، يمكن لأحد التطبيقات اتخاذ إجراء بناءً على عنصر التحكم الذي تم النقر عليه في مجموعة من عناصر التحكم في القائمة:
PrivateSubmnuCut_Click(IndexAsInteger)
IfIndex=0ثم أمر "قص".
CopyActiveControl "استدعاء إجراء شائع."
ClearActiveControl
ElseIfIndex=1ثم أمر "نسخ".
CopyActiveControl
ElseIfIndex=2ثم "مسح الأمر".
ClearActiveControl
آخر "أمر اللصق".
PasteActiveControl
EndIf
EndSub
لاحظ أنه يمكنك دائمًا إضافة المزيد من كتل ElseIf إلى بنية If...Then. ومع ذلك، تكون كتابة هذه البنية شاقة عندما يقوم كل ElseIf بمقارنة نفس التعبير بقيمة رقمية مختلفة. في هذه الحالة يمكنك استخدام بنية القرار SelectCase.
للحصول على معلومات تفصيلية، الرجاء الرجوع إلى "بيان If...Then...Else" في "دليل مرجع اللغة VisualBasic6.0".
حدد الحالة
يوفر VisualBasic بنية SelectCase لتحل محل If...Then...Else، بحيث يمكن تنفيذ إحدى كتل البيانات المتعددة بشكل انتقائي. تتشابه إمكانيات عبارة SelectCase مع عبارة If...Then...Else، ولكن في حالة التحديدات المتعددة، تجعل عبارة SelectCase التعليمات البرمجية أكثر قابلية للقراءة.
يعالج SelectCase تعبير اختبار أعلى البنية ويقيمه مرة واحدة فقط. ثم يقوم Visual Basic بمقارنة قيمة التعبير بقيمة كل حالة في البنية. إذا كانت متساوية، فسيتم تنفيذ كتلة البيان المرتبطة بالحالة.
حددCasetestexpression
[قائمة تعبيرات الحالة1
[كتلة البيان-1]]
[قائمة تعبيرات الحالة2
[كتلة البيان-2]]
.
.
.
[حالة أخرى
[statementblock-ن]]
EndSelect
كل قائمة تعبيرات عبارة عن قائمة تحتوي على قيمة واحدة أو عدة قيم. إذا كانت هناك قيم متعددة في القائمة، فافصل القيم بفواصل. تحتوي كل كتلة بيان على صفر أو أكثر من البيانات.
إذا تطابقت أكثر من حالة واحدة مع تعبير الاختبار، فسيتم تنفيذ كتلة البيان المرتبطة بالحالة المطابقة الأولى فقط. إذا لم تتطابق أي قيمة في قائمة التعبيرات مع تعبير الاختبار، فسيقوم Visual Basic بتنفيذ العبارة في جملة CaseElse (هذا اختياري).
على سبيل المثال، افترض أنك تريد إضافة أمر إلى قائمة "تحرير" في مثال If...Then...Else. يمكنك إضافة جملة ElseIf لهذا الغرض، أو استخدام SelectCase لكتابة دالة:
PrivateSubmnuCut_Click(IndexAsInteger)
حددCaseIndex
أمر "القص" Case0.
CopyActiveControl "استدعاء إجراء شائع."
ClearActiveControl
الحالة 1 أمر "نسخ".
CopyActiveControl
Case2 أمر "مسح".
ClearActiveControl
Case3 'أمر اللصق.
PasteActiveControl
حالة أخرى
frmFind.Show 'إظهار مربع الحوار الذي تم العثور عليه.
EndSelect
EndSub
لاحظ أن بنية SelectCase بتقييم التعبير في البداية في كل مرة. تقوم بنية If...Then...Else بتقييم تعبير مختلف لكل عبارة ElseIf. يمكنك استبدال بنية If...Then...Else ببنية SelectCase فقط إذا قامت عبارة If وكل عبارة ElseIf بتقييم نفس التعبير.
->