دروس في احداث الفأرة للمبتدئين

الكاتب : hope   المشاهدات : 539   الردود : 2    ‏2004-05-08
      مشاركة رقم : 1    ‏2004-05-08
  1. hope

    hope قلم فضي

    التسجيل :
    ‏2004-04-18
    المشاركات:
    2,521
    الإعجاب :
    0
    بسم الله الرحمن الرحيم

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

    أولا:أحداث الفأر(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 إحدى القيم التالية :-

    Constant (Button) Value Description
    vbLeftButton 1 Left button is pressed
    vbRightButton 2 Right button is pressed
    vbMiddleButton 4 Middle button is pressed


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


    Constant (Shift) Value Description
    vbShiftMask 1 SHIFT key is pressed.
    vbCtrlMask 2 CTRL key is pressed.
    vbAltMask 4 ALT key is pressed.


    shift ctrl alt


    a c s
    Binary Value Decimal Value Constant Meaning
    001 1 vbShiftMask The SHIFT key is pressed.
    010 2 vbCtrlMask The CTRL key is pressed.
    100 4 vbAltMask The ALT key is pressed.
    011 3 vbShiftMask + vbCtrlMask The SHIFT and CTRL keys are pressed.
    101 5 vbShiftMask + vbAltMask The SHIFT and ALT keys are pressed.
    110 6 vbCtrlMask + vbAltMask The CTRL and ALT keys are pressed.
    111 7 vbCtrlMask + vbAltMask + vbShiftMask The SHIFT, CTRL, and ALT keys are pressed

    فيمكن أن ينطلق الحدث مع الضغط على ال 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) كما يمكن تغيير اللون أيضا.


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

    والسلام عليكم ورحمة الله وبركاته
     
  2.   مشاركة رقم : 2    ‏2004-05-08
  3. العمراوي

    العمراوي مشرف سابق

    التسجيل :
    ‏2002-11-24
    المشاركات:
    7,510
    الإعجاب :
    4
    مشكووور ..,.,., درس رائع .,.,.,.,

    جزاك الله به خيرا .,.,.,.,
     
  4.   مشاركة رقم : 3    ‏2004-05-08
  5. alhammady

    alhammady عضو

    التسجيل :
    ‏2003-07-09
    المشاركات:
    119
    الإعجاب :
    0
    ممتاز .........

    ولا تحرمنا من جديدك

    بس لي ملاحظة : الاكواد اعمل لها محاذاة من اليسار الي اليمين



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

مشاركة هذه الصفحة