الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

شرح كيفية التعامل مع احداث الفأرة (mouse events)

مغلق
بدأه هوب في 17 مارس 2005 · 12 رد · 8,176 مشاهدة · في قسم الدروس والمواضيع الهامة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

من أهم وأكثر الأحداث استخدام في الفيجوال بيسك هي أحداث الفأرة. ولذلك أحببت أن أقدم لمحة بسيطة إلى إخواني في المنتدى الذي طالما استفدت وتعلمت منه وأرجو من الله التوفيق.

أولا:أحداث الفأر(mouse events):-

1- Click:-

ينطلق هذا الحدث عند الضغط على زر الفأرة (click) وهو أكثر الأحداث شيوعا.

2-Mousedown:-

ينطلق هذا الحدث أيضا عند الضغط على زر الفأرة.

ولكن هذا الحدث يسبق حدث ال(Click) فأول ما يتم الضغط على الفأرة وقبل أن تطلق الزر يكون هذا الحدث قد تنفد.

ويكون شكل دالة الحدث كالتالي:-

Private Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
End Sub

أما بالنسبة للمتغير(button) فقيمته تحدد أي من الأزرار الثلاثة للماوس هي التي ينطلق عنده الحدث.

فيأخذ المتغير button إحدى القيم التالية :-

1_1732005115740.9257013.JPG

أما بالنسبة لل (shift) فقيمته تحدد انه عندما يتم الضغط على زر من لوحة التحكم (shift,ctrl or alt) مع زر الفأرة فأن الحدث ينطلق.

وهذه القيم موضحة بالجدول :

2_1732005115830.5524103.JPG

كما انه يوجد علاقة جميلة يمكن استخدامها لتحديد اي ازرار من هذه الازرار الثلاثة نريد الحدث ان ينطلق عند الضغط عليها وهي كالتالي :

3_1732005115940.2672541.JPG

من الشكل اعلاه يمن وضع قيمه لكل زر بالعد الثنائي اي (0 او 1 ) وبالتالي اذا كانت قيمة (a) هي (1) فهذا يعني انه فعال اواذا كانت صفر اي انه غير نشط وبالتالي اذا كنت اريد ان يتنفذ الحدث عند الضغط على الزر (alt ) فقط فأنني اضع القيمة استنادا الى الشكل 100 اي 1 لل (a) ال (alt) و (0) لكلا من ال (ctrl and shift)

الجدول التالي يوضح جميع القيم الممكنه :

4_1732005121170.4118006.JPG

فيمكن أن ينطلق الحدث مع الضغط على ال shift وزر الماوس إذا كان shift = 1 أو shift = vbshiftmask

أو عند الضغط على shift+ctrl+alt إذا كان shift = 7.

مثال:-

Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  Select Case Shift
      Case 1	
Form1.BackColor = vbRed    
        
      Case 7	
        Form1.BackColor = vbYellow   
        
  End Select
  
If  Button = 1 Then

    Form1.BackColor = vbBlue	
Else 
            Form1.backcolor=vbGreen    
End If

End Sub

بالنسبة لهذا المثال فيحدث تغيير في لون الفورم :

1-عند الضغط على الزر الايسر للفأرة مع زر الshift يتغير لون الفورم الى احمر

2- عند الضغط على الزر الايسر للفأرة مع (alt+ctrl+shift) يتغير لون الفورم الى الاصفر

3- بالنسبة لشرط ال(if) فيحدد الزر الايسر هو الذي ضغط فيتغير لون الفورم الى ازرق اما اذا ضغط زر اخر الايمن او الاوسط فيتغير اللون الى الاخضر لان button=2 or 3 .

أما بالنسبة للمتغيرين X &Y فهي ترجع موقع مؤشر الفأرة.

مثال:-

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Text1.Text = X 
Text2.Text = Y
 End sub

3- Mouseup:-

ينطلق هذا الحدث بعد حدث الmousedown (عند ترك المؤشر بعد الضغط).

أما بالنسبة للمتغيرات التي يستخدمها فقد سبق توضيحها في mousedown.

4-Mousemove:-

ينطلق عند البدء في تحريك المؤشر.

مثال على استخدام أحداث الفأرة:-Dim paintnow As Boolean

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
paintnow = True
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If paintnow Then
PSet (X, Y)
End If

End Sub

Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
paintnow = False
End Sub

شرح :

عند الضغط على مؤشر الفأرة (أي انطلاق حدث Mousedown فأن قيمة المتغير paintnow =true وبالتالي فأن الشرط الموجود في الحدث Mousemove صحيح وبالتالي يسمح بالرسم على الفورم باستخدام الدالة pset التي تعمل على رسم نقطة في احداتيي المؤشر X & Y وباستمرار الحركة يتم رسم نقاط متواصلة تظهر عل شكل خط.

وعند إطلاق زر المؤشر فأن الحدث Mousedown ينتهي ويبداء حدث ال Mouseup والذي يغير قيمة المتغير paintnow=false وبالتالي فعند تحريك المؤشر حدث ال Mousemove ينطلق ولكن لا يوجد أي شفرة خارج شرط ال (if ) سيتم تنفيذها.

ملاحظة: يمكن زيادة حجم الخط بتغيير قيمة الخاصية drawwidth لل(form) كما يمكن تغيير اللون أيضا.

هكذا يكون انتهى درس أحداث الفأرة.

والسلام عليكم ورحمة الله وبركاته

____________.doc

تم تعديل هذه المشاركة بواسطة هوب في 17 مارس 2005 في 23:16

اني ابتليت باربع ما سـلطوا ***** الا لشدة شقوتي و عنائي

ابليس والدنيا ونفسي والهوى **** كيف السبيل وكلهم اعدائي

شكوت الى وكيع سوء حفظي ***** فارشدني الى ترك المعاصي

و اخـبرنـي بـان الـعلم نـور ****** و نور الله لا يهدى لعاصي

#2

شكري وتقديري للمجهود المبذول

اللهم اغفر لي و لوالدي و للمؤمنين يوم يقوم الحساب

لا إله إلا الله عدد ما كان و عدد ما يكون و عدد الحركات و السكون

#3

اشكر لك مرورك ..

اني ابتليت باربع ما سـلطوا ***** الا لشدة شقوتي و عنائي

ابليس والدنيا ونفسي والهوى **** كيف السبيل وكلهم اعدائي

شكوت الى وكيع سوء حفظي ***** فارشدني الى ترك المعاصي

و اخـبرنـي بـان الـعلم نـور ****** و نور الله لا يهدى لعاصي

#4

أخي هوب .... درس رااااااااااااااااائع والله لا درس ولا ارووووووع

بارك الله فيك ... مجهود تشكر عليه

ننتظر منك المزيد

أخوك ناصر

#5

مشكور على هذا المجهود الرائع

خطوات فيجوالية

--------------------------------------

التحزيم بواسطة Package & Deployment Wizard

أداة all date للتعامل مع الوقت

التعامل مع app.path دروس للمبتدئين

اصنع ocx من تصميمك لجميع احتيجاتك دروس للمبتدئين

شرح برنامج fack foder لحماية الفهارس

مواضيع اخرى

--------------------------------------

سجل بياناتك للاشتراك في رابطة المبرمجين المصريين, للاخوة المصريين او العرب المقيمين بمصر

عني = about me

--------------------------------------

مدونتي مصري للنهاية

--------------------------------------

على اسم مصر التاريخ يقدر يقول ما شاء ............... انا مصر عندي احب و اجمل الاشياء

#6

شكراً جزيلا اخي هوب :)

بنت اليمن ،،

لا اله الا الله .. محمد رسول الله

(* ربِ اجعلني مقيم الصلاة و من ذريتي ، ربنا و تقبل دعـاء *)

يا حيّ يا قيـوم ... برحمتك استغيث ... اصلح لي شأني كله و لا تكلني الى نفسي طرفة عين

#7

اشكرك جميعا لتشجيعكم ..

ولا شكر على واجب ..

اني ابتليت باربع ما سـلطوا ***** الا لشدة شقوتي و عنائي

ابليس والدنيا ونفسي والهوى **** كيف السبيل وكلهم اعدائي

شكوت الى وكيع سوء حفظي ***** فارشدني الى ترك المعاصي

و اخـبرنـي بـان الـعلم نـور ****** و نور الله لا يهدى لعاصي

#8

درس رائع من شخص أروع ..

شكراً لك وتمنياتي لك بالتوفيق ..

ani.gif
#9

درس رائع جزاك الله خيراً

تحياتي

#10

بارك الله فيك

وجزاك الله كل خير

الدرس اكتر من رائع

بس وضع متاخر

انا ابحث عنه من 3 اشهر

بارك الله فيك وجزاك خيراً

يا رسول الله عفوا

اهل فلسطين يحاربون ونحن نيام

ليقم كل منا بواجبه تجاه فلسطين وارض الاسراء والمعراج

يا امة المليار شعب باكمله يباد وانتم تنظرون الى متى تنتظرون

واعلموا ان التاريخ لا يرحم ولن يغفر ولن ينسى

1141244387.gif

1141129327.gif

#11

اخواني اشكركم جميعا على مروركم الكريم وتشجيعكم ..

المشرفين الكرام اشكر لكم كرمكم بتتبيث الموضوع ..

اني ابتليت باربع ما سـلطوا ***** الا لشدة شقوتي و عنائي

ابليس والدنيا ونفسي والهوى **** كيف السبيل وكلهم اعدائي

شكوت الى وكيع سوء حفظي ***** فارشدني الى ترك المعاصي

و اخـبرنـي بـان الـعلم نـور ****** و نور الله لا يهدى لعاصي

#12

ماشاء الله عليك وربنا يذ يدك

اقتباس

آسف الدخول متقطع هذه القتره

اقتباس

[يمين]

.[/يمين]

A7med_prof-4-2007.jpg

اخر مواضيعي 2007

االمثال مطبق على موقع بورصه سعودي

.

.

مواضيع مهمه ومطلوبه بكثره VB6

.

بــرامج ومشــاريع عربيه كامــله {HnHn} والمزيد في قسم برامج الاعضاء || ربط قواعد بيانات اكسس مع الفيجوال بيسك, مادة دراسية كاملة {بنت اليمن}|| المرجع الشامل لجمل SQL ا {GENIUS-IT} || كيفية التعامل مع مكتبة الـ DAO, في الوصول إلى قاعدة بيانات {رمضان} || مثال ريط Visaul Basic 6.0 مع SQL SERVER ا || العمليات التي تجرى على قاعدة البيانات, مثال كامل {بنت اليمن} || تصدير البيانات من الاكسل الي الاكسس بالفيجوال بيسك {HnHn} || البحث في قاعدة البيانات {MANSUR} || قواعد البيانات العلائقية وتقنيات الوصول إليها {عبد الله فتحي} || كيفية أظهار بيانات جدولين بواسطة التاريخ ,,,,,,,

.

أخي ربما سؤالك اجابته في أحدى هذه المواضيع فإن لم تجد قم بالبحث وان لم تجد اطرح سؤالك مع وضع عنوان مناسب بحيث ان يكون هذا العنوان دال على محتوى الموضوع فغير ذلك من أكبر الكبائر في المنتدى وسيؤدي الى غلق او حذف موضوعك .

.

</
#13

درس جميل أخي هوب و نتمني منك المزيد

اتمني منك اذا كان هناك استخدام مفاتيح الموس خارج البرنامج

عند النقر الايمن او الايسر خارج نطاق برنامج

أرجو ان تساعدنا في ذلك اذا كنت تستطيع

هذا الموضوع مغلق.

مواضيع مشابهة