محتويات الدرس الرابع :
v ما هو الحدث ؟
v كيف تستجيب للحدث ؟
v نافذة البرمجة
v الأحداث المشتركة
v المتغيرات والمصفوفات والإجراءات ما هو الحدث ؟
الحدث Event هو كل مايقوم به المستخدم من حركات بالفأرة كالنقر أو النقر المزدوج أو ما يقوم به من ضغط على لوحة المفاتيح .
كيف تستجيب للحدث ؟
عند وقوع الحدث هناك أمران : الأول ، هو الحدث نفسه كالنقر مثلاً والثاني هو الأداة التي وقع الحدث فوقها مثل زر الأوامر . يقوم "فيجول بيسيك" بإعداد إجراء حدث على كل أداة موجودة فوق النافذة ويكون الإجراء كما في الشكل التالي :
أي أن "فيجول بيسيك" يقوم بوضع إجراء فارغ لهذا الحدث ، وأنت تضع فيه التعليمات Code التي تريد أن تنفذها عند وقوع الحدث . لذلك يجب هنا أن تسأل نفسك : ماهي التعليمات في داخل إطار الإجراء . وبالتالي كلما نقر المستخدم هذا الزر أثناء تشغيل البرنامج ، فإن "فيجول بيسيك" يقوم بتنفيذ هذه التعليمات لاحظ كيف يربط "فيجول بيسيك" بين الأداة والحدث :
sub command1_click
فهو يضع كلمة sub وهي تحدد بدء الإجراء ثم يضع اسم الأداة ثم حرف (-)ثم اسم الحدث . وفي النهاية يضع عبارة end sub وهي تحدد نهاية الإجراء .
الأحداث الناتجة عن الفأرة
متى يقع
معناه
الحدث
عند نقر المستخدم فوق الأداة أو النافذة ويمكن أن يقع أيضاً إذا ضغط المستخدم عصا المسافة على لوحة المفاتيح بينما التركيز على زر أوامر
النقر
Click
عند نقر المستخدم نقراً مزدوجاً فوق الأداة أو النافذة
النقر المزدوج
DbClick
عند تحريك المستخدم الفأرة فوق الأداة أو النافذة
حركة الفأرة
MouseMove
عندما يقوم المستخدم بنقر زر الفأرة وقبل أن يحرره..أي أثناء عملية النقر
زر الفأرة اسفل
MouseDown
بعد أن يقوم المستخدم بنقر زر الفأرة وتحريره . أي بعد عملية النقر .
زر الفأرة ارتفع
MouseUp
Sub Command1_MouseDown (Button As Integer, Shift As Integer, X As Single, Y As Single)
End Sub
وهو هنا يعطيك متغيرات ، كل واحد منها يحمل معلومة معينة ، كما يلي : المتغير Button :
الأحداث الأربعة السابقة تقع عند ضغط المستخدم بأي زر من أزرار الفأرة الثلاثة ويوضح لك المتغير Button أي زر منها قام المستخدم بضغطه ، وله ثلاثة احتمالات :
1. المستخدم ضغط الزر الأيسر
2. المستخدم ضغط الزر الأيمن
3. المستخدم ضغط الزر الأوسط
ولايمكن للمستخدم أن يضغط أكثر من زر في نفس الوقت . قإذا أردت أن تختبر إن كان المستخدم قد ضغط الزر الأيمن ، فإنك تكتب :
if button = 2 then …………..
فإذا كان المستخدم قد ضغط الزر الأيمن ، سيقوم "فيجول بيسيك" بتنفيذ الأمر التالي لكلمة then التغير Shift :
يوفر لك معلومات عن حالة المفاتيح الثلاثة Ctrl و Shift و Alt أثناء ضغط زر الفأرة ، كما يلي :
1 المستخدم ضغط مفتاح shift
2 المستخدم ضغط مفتاح Ctrl
4 المستخدم ضغط مفتاح Alt
لاحظ أنه يمكن للمستخدم أن يضغط أكثر من مفتاح في نفس الوقت . في هذه الحالة يحتوي المتغير shift على مجموع المفاتيح التي ضغطها . فمثلاً إذا ضغط على مفتاحي ctrl و alt في نفس الوقت ، فإن المتغير shift سيحتوي على مجموعهما هو 6 لذلك إذا أردت أن تختر إن كان المستخدم ضغط مفتاح shift أثناء ضغطه لزر الفأرة ، فإنك تكتب :
if shift = 1 then
أو أردت أن تختبر إن كان قد ضغط مفتاحي alt و shift أثناء ضغطة لزر الفأرة
if shift = 5 then
المتغيران y,x :
يحددان موقع المشيرة داخل الأداة أثناء عملية ضغط زر الفأرة .