الأن نتطـــرق لكيفيــــة التعـــامل مع الــــزرين الأيســــر " 1 " و الأيمن " 3 "
وسيـــتم التعــامل معهـــم عن طـــريق استخـــدام الإختصـــار " e_Type "
وذلك فى خصـــائص الصفحـــة فى الحــدث " On Mouse Button "
فى الصــــورة التاليــــة يتــم عرض المتغيــــرات والقيـــم المعبــــرة عـــن أحداث الضغط
على الزرين الأيسر و الأيمن للماوس :
" e_Type "
حيـــث أن : السطر الأول " LEFT_BUTTON_DOWN " وترجمتة عند الضغط على زر يسار الماوس ويمكن التعبير عنــه بالقيمـــة " 0 " صفــــر .
السطـــر الثانى " LEFT_BUTTON_UP " وترجمتة عند رفع اليد بعــد الضغط على زر الماوس الأيسر بمعنى أنه يحتسب التغيير من ضغط الماوس الى رفع اليد متغيــــر آخــــر ويتم التعبير عنه بالقيمـــة " 1 " واحـــــد .
السطــــر الثالث " RIGHT_BUTTON_DOWN " وترجمتة عند الضغط على الزر الأيمن للماوس ويمكن التعبير عنه بالقيمـــة " 2 " إثنين .
السطــــر الرابع " RIGHT_BUTTON_UP " وترجمتة عند رفع اليد بعــد الضغط على زر الماوس الأيمن بمعنى أنه يحتسب التغيير من ضغط الماوس الى رفع اليد متغيــــر آخــــر ويتم التعبير عنه بالقيمـــة " 3 " ثلاثة .
وبذلك يمكنك عمل شرط كأتى على سبيل المثال لمنع ظهور قائمة كليك يمين للماوس على صفحـــة الويب داخل المشروع :
الكود:
كود: if e_Type==2 then Dialog.Message("عذرا خاصية الضغط بيمين الماوس على هذا المكان غير ممكنة", "رســـالة تنبيــة", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1); end
وطبعـــا يوضـــع هذا الشرط فى الحــدث " On Mouse Button " فى خصـائص الصفحـــــة .
وبذلك ستجبر المستخدم على أنه يضغط ليتفادى أو ليوافق على الرسالة وبذلك تم إلغاء الأمر السابق .
وأعتقــــد أنة لمزيــــد من الدقة فى تنفيـــذ ذلك يمكنك ايجـــاد مكان صفحة الويب
من حيث ال " POS " وايجــاد مكان ضغط الماوس من حيث " POS " بالنسبة لصفحة المشروع ككل ووضع ذلك فى الشرط
حتى لا تؤثر على باقى العناصر فى المشروع اذا كنت توفر قائمة ليمين الماوس مع أى عنصـــر آخـــــــر .
ملحــــوظة يمكن عمل شرط عند الضغط على أحد أزرار الماوس فى مكان معين
وذلك باستخـــدام " e_X " أو " e_Y " لمكان الماوس فى نفس الحدث السابق " On Mouse Button "
صورة
" e_Delta "
أما عن التعـــامل مع الزر رقم " 2 " فى الصـــــورة الأولى والتى توضح شكل الماوس
فيتــــم ذلك عن طـــريق استخـــدام الإختصـــار " e_Delta "
حيـــث أن تحـــريك عجـــلة الماوس الى الأمام يكــــون لة القيـــمة " 120 " بمعنى أنها قيمــة موجبة .
أما تحــريك عجلــة الماوس للخلف تكــون لهـا القيـــمة " - 120 " بمعنى أنها قيمــة سالبــة .
وبذلك يمكــن وضــــع شــــرط فى الحــدث " On Mouse Wheel " كالأتى :
الكود:
كود: if e_Delta==120 then
------ Do something here elseif e_Delta==(-120) then ------ Do something here
end
صورة
" e_Flags "
النقطة الأخيرة فى هذا المحور وهو الإستخدام المشترك
بين الثلاث أزرار للماوس ( الأيسر " 1 " ) و ( الوسط " 2 " عند الضغط علية ) و ( الأيمن " 3 " )
مع الزر الأوسط ( عجلة الفأرة " 2 " عند تحريك العجلة ) وذلك عن طريق " e_Flags "
بداية " e_Flags " عبارة عن جدول من خمس قيم وهـــم :
1_ " كما هو معروف باسم زر شيفت فى لوحة المفاتيح " ( shift key ) .
2_ " كما هو معروف باسم زر كنترول فى لوحة المفاتيح " (ctrl key ) .
3_ " وهو زر الفأرة اليســـار وكما أشرنا الية بالتوضيح فى الصورة " ( left mouse button ) .
4_ " وهو عجلة الماوس عند الضغط عليها وكما أشرنا اليها بالتوضيح فى الصورة " ( middle mouse button ) .
5_ " وهو زر الفأرة الأيمن وكما أشرنا الية بالتوضيح فى الصورة " ( right mouse button ) .
جميع ما سبق عند استخدامة فإن النتيجة تؤول الى القيمة البولينية
إما محقق " true " و إما غير محقق " false "
وبذلك يكون الاستخدام كالأتى :
e_Flags.shift
e_Flags.ctrl
e_Flags.LButton
e_Flags.MButton
e_Flags.RButton
فى النهاية كمثال للإستخــــدام مع الشــــرط " if " يستخدم ما سبق
فى خصـــائص الصفحــــة فى الحـــدث " On Wheel " :
الكود:
كود: if e_Flags.shift then --Do something here
elseif e_Flags.ctrl then --Do something here
elseif e_Flags.LButton then --Do something here
elseif e_Flags.MButton then --Do something here
elseif e_Flags.RButton then --Do something here end
إعـــــذرونى للإطــــالة وكثـــــرة استخــدام الأيكونات وذلك للتوضيح لكافة المستويات .
أتمنى أن أكون قد وفقت فى طــــــرح معلومــــــة بالشكل المناسب