PDA

View Full Version : مشکل در رویداد mouse move



dj-mohammad
یک شنبه 19 آذر 1391, 17:31 عصر
با عرض سلام خدمت همه بچه ها
من یک سوال داشتم
وقتی در یک برنامه بازی خیلی ساده مثل بازی اعصاباز رویداد mouse move استفاده میکنیم درصورتی که به یکی از label ها برخورد کند پیغای برایش چاپ میشود . تا اینجا برنامه درست است ولی اگر ما در هنگام شروع بازی روی یکی از دکمه های موس کلیک کرده ونگه داریم به راحتی میتوانیم از روی این label ها عبور کنیم
آیا رویداد دیگری را میتوانیم استفاده کنیم که این برنامه درست شود
باتشکر

m.4.r.m
یک شنبه 19 آذر 1391, 19:46 عصر
خوب همین دستوری که در ماوس مو نوشتی رو کپی کن داخل رویداد Mouse down هم کپی کن ببین مشکلت حل میشه اینطوری

if button=2 or button=1 then
دستورات mouse move
end if

dj-mohammad
یک شنبه 19 آذر 1391, 22:37 عصر
خوب همین دستوری که در ماوس مو نوشتی رو کپی کن داخل رویداد Mouse down هم کپی کن ببین مشکلت حل میشه اینطوری

if button=2 or button=1 then
دستورات mouse move
end if

نه درست نشد
میدونید مثلا من یه دستور خیلی ساده تو موس مو نوشتم که اگر به label برخورد کنه پیغام خطا چاپ بشه
اما کاربر میتونه تو ناحیه فرم خارج از label کلیک کنه و نگه داره و از روی label رد بشه
میخواستم که اینکار صورت نگیره

vbkaar
دوشنبه 20 آذر 1391, 00:24 صبح
برای اینکار باید علاوه بر اینکه برای رویداد Mouse Move خود لیبل باید کد بنویسید باید در رویداد Mouse Move فرم هم کد زیر رو به کار ببرید:


If Button = 1 Then
If ((X > Label1.Left And (X < Label1.Left + Label1.Width))) And ((Y > Label1.Top) And (Y < Label1.Top + Label1.Height)) Then
دستورات مورد نظر
End If
End If

m.4.r.m
دوشنبه 20 آذر 1391, 11:35 صبح
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label1.Visible = False
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label1.ForeColor = vbBlack
End Sub

Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label1.Visible = True
End Sub

Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label1.ForeColor = vbBlue
End Sub



این کلک ببین جواب میده برات

dj-mohammad
دوشنبه 20 آذر 1391, 20:44 عصر
برای اینکار باید علاوه بر اینکه برای رویداد Mouse Move خود لیبل باید کد بنویسید باید در رویداد Mouse Move فرم هم کد زیر رو به کار ببرید:


If Button = 1 Then
If ((X > Label1.Left And (X < Label1.Left + Label1.Width))) And ((Y > Label1.Top) And (Y < Label1.Top + Label1.Height)) Then
دستورات مورد نظر
End If
End If

آقا دستت درد نکنه خیلی لطف کردی ازت خیلی ممنونم
به اطلاعات من خیلی اضافه شد
خیلی چاکرم