Sub EndProgram()
Dim Result As String
Result = MessageBox.Show("هل تريد بالتأكيد الخروج من البرنامج", "تأكيد الخروج", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2, MessageBoxOptions.RightAlign)
If Result = 6 Then
End
Else
Exit Sub
End If
End Sub
لاحظ أننا - في الإجراءالسابق - عند ضغط المستخدم على Yes/نعم فإننا نقوم بتنفيذ الأمر End، بينما لو قامالمستخدم بالضغط على No/لا فإننا نقوم بالخروج من الإجراء عن طريق الأمر Exit Sub ..
الآن لاستخدام الإجراء بشكل فعلي قم بوضع زر على النموذج واجعلعنوانه/Caption = "خروج" ..
اضغط على هذا الزر مرتين للانتقال لنافذة الكود ..
قم بكتابة الأمر Call ثم اكتب اسم الإجراء ..
ويمكتك الاستغناء عن الأمر Call وكتابة اسم الإجراء مباشرة ولن يؤثر ذلك على شيء ..
إذاً بإمكاننا أننكتب في حدث النقر على الزر:
برنامج:
كود PHP:
Call EndProgram()
EndProgram()
تهانينا .. لقد استخدمت الإجراء بنجاح ..
ما هي فائدة الإجراءات ؟
لا نريد أن نعدد في فوائد الإجراءات وهي كثيرة بالفعل، وتتحدد هذه الفائدة بحسب الحاجة إليها، ولكن أهم ما يُمكن أن نشير إليه هو:
- دور الإجراءات الواضح في تقليل الكود المكتوب:
على سبيل المثال لو كنا نستخدم في النموذج أكثر من إمكانية لإنهائه ( عن طريق زر إنهاء أو عن طريق البند إنهاء من قائمة .. )
هل سنقوم بكتابة كود تأكيد الخروج مرتين، الأولى في حدث النقر على الزر إنهاء، والثانية في حدث النقر على البند إنهاء من القائمة ؟؟
بإمكاننا عمل ذلك ولكنه يعني المزيد من الجهد في الكتابة والمزيد من الكود الذي لا فائدة منه ..
الأفضل في مثل هذه الحالة أن نقوم بعمل إجراء كالإجراء EndProgram الذي قمنا بعمله بالأعلى، ثم يمكننا بعد ذلك استدعاء هذا الإجراء من أي مكان في البرنامج عن طريق كتابة اسم الإجراء فقط ..
- دور الإجراءت في تنظيم الكود وتقسيمه:
وهذا واضح تماماً حيث أن تقسيم الأكواد إلى إجراءات يجعل الأمر أكثر تنظيماً، كما أنه يجعل من السهل عليك - وعلى غيرك - فهم الكود واستخدامه في أي وقت ..
تخيل أنك تريد التغيير في كود يحتوي على آلاف الأسطر المتتالية، إذاً أنت بحاجة إلى قراءة هذه الأسطر كلها، والتغيير في أماكن عديدة، وهذا ما يمكننا تفاديه باستخدام الإجراءات ..
تمرير المعاملات أو القيم إلى الإجراء:
من الممكن عند استدعاء الإجراء أن نقوم بتمرير قيمة أو معامل إلى الإجراء، مثلاً لو كان لدينا إجراء يقوم بالتحقق من وجود أرقام فقط في مربع النص أم لا، فمن الطبيعي عند استدعاء هذا الإجراء أننا سنقوم بتمرير اسم مربع النص - الذي نريد التحقق منه - إليه..
وبصفة العموم فإننا نحتاج عند إتاحة التمرير إلى الإجراء ثلاثة أشياء ..
1. الكلمة ByVal أو الكلمة ByRef.
2. اسم القيمة أو المعامل.
3. نوعهـــــا.
ولنأخذ مثالاً على ذلك الإجراء التالي، وهو يقوم بتغيير لون الخلفية وكتابة "بسم الله الرحمن الرحيم" في مربع النص الذي نحدده له، وسيكون كالتالي: