المجلس اليمني ... يمن واحد وآراء متعددة
::  قوانين المنتدى  |   طلب رقم التنشيط   |   تنشيط العضوية  |  استعادة كلمة المرور
العودة   المجلس اليمني :: العلمية والتقنية :: الكمبيـوتر والانتـرنت :: المواقع ولغات البرمجة والشبكات
|
 
أدوات الموضوع
قديم 08-05-2004, 01:49 AM   مشاركة رقم : 1
قلم فضي
 
لا توجد صورة

 
تاريخ التسجيل: 18-04-2004
المشاركات: 2,558

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

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

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

أولا:أحداث الفأر(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 De******ion
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 De******ion
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) كما يمكن تغيير اللون أيضا.


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

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

  رد مع اقتباس
قديم 08-05-2004, 08:05 AM   مشاركة رقم : 2
مشرف سابق

الصورة الرمزية العمراوي

 
تاريخ التسجيل: 24-11-2002
المشاركات: 7,559

افتراضي

مشكووور ..,.,., درس رائع .,.,.,.,

جزاك الله به خيرا .,.,.,.,

  رد مع اقتباس
قديم 08-05-2004, 12:13 PM   مشاركة رقم : 3
عضو
 
لا توجد صورة

 
تاريخ التسجيل: 09-07-2003
المشاركات: 128

افتراضي

ممتاز .........

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

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



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

  رد مع اقتباس
إضافة رد

أدوات الموضوع

الانتقال السريع :::

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.