PDA

View Full Version : کنترل دکمه وسط در mouse ؟



hassan_RK
دوشنبه 15 تیر 1383, 16:56 عصر
با عرض سلام
چطور در vba می توان دکمه وسط mouse را کنترل کرد
از توجه شما سپاسگزارم

منصور بزرگمهر
سه شنبه 16 تیر 1383, 04:27 صبح
در اکسس 2002 XP رخداد ماوس اسکرول وجود دارد

hassan_RK
چهارشنبه 24 تیر 1383, 23:30 عصر
متشکرم از توجه شما
در اکسس 97 چطور ؟
اگر نه - آیا اکتیو ایکسی سراغ دارید که scroll در دکمه وسط موس را کنترل کند ؟
موفق باشید .

منصور بزرگمهر
دوشنبه 05 مرداد 1383, 02:14 صبح
در VB6 امتحان کرده ام ولی جوابی نگرفته ام، فکر هم نمی کنم اکتیو ایکسی بتوانی پیدا کنی، ولی حال چرا حتماً اکسس 97 و همین طور چگونه استفاده ای برای دکمه وسط ماوس دارید!

hassan_RK
پنج شنبه 08 مرداد 1383, 01:20 صبح
چون در فرمهای اکسس 97 وقتی اسکرول موس (دکمه وسط) حرکت میکند رکوردهای روی فرم هم به حرکت در می آیند ومن می خواهم که اسکرول را کنترل نمایم

hassan_RK
پنج شنبه 08 مرداد 1383, 01:20 صبح
چون در فرمهای اکسس 97 وقتی اسکرول موس (دکمه وسط) حرکت میکند رکوردهای روی فرم هم به حرکت در می آیند ومن می خواهم که اسکرول را کنترل نمایم

ali_bagheri34
شنبه 28 شهریور 1383, 17:38 عصر
سلام
من در اکسس 2003 نیز به این مورد برخورد کرده ام و نتوانستم مشکل را حل کنیم چون با دکمه وسط موس اسکرول بر روی رکوردها اتفاق می افتد در صورتی که در برنامه نمی خواهم این اتفاق بیفتد لطفا اگر کسی در این مورد اطلاعاتی دارد مرا یاری نماید

شاپرک
دوشنبه 25 مهر 1384, 13:54 عصر
من هم همین مشکل رو دارم

شاپرک
دوشنبه 25 مهر 1384, 14:02 عصر
در اکسس 2002 XP رخداد ماوس اسکرول وجود دارد

این رخداد کجا هست؟

mohammadgij
دوشنبه 25 مهر 1384, 15:23 عصر
اسم دقیق پروپرتی مورد اشاره On Mouse Wheel هستش.



Private Sub Form_MouseWheel(ByVal Page As Boolean, ByVal Count As Long) 8

End Sub 8

شاپرک
دوشنبه 25 مهر 1384, 15:52 عصر
چطور میشه غیر فعالش کرد؟؟

mohammadgij
دوشنبه 25 مهر 1384, 16:34 عصر
من یه راه مسخزه پیدا کردم ببینید شاید به دردتون خورد

Private Sub Form_MouseWheel(ByVal Page As Boolean, ByVal Count As Long)8
8 If Count = -3 Then
8 DoCmd.GoToRecord , , acNext
8 ElseIf Count = 3 Then
8 DoCmd.GoToRecord , , acPrevious
8 End If
End Sub8

شاپرک
چهارشنبه 04 آبان 1384, 09:56 صبح
راه دیگه ای نیست؟

شاپرک
شنبه 07 آبان 1384, 14:09 عصر
اینم راه حلش

شاپرک
یک شنبه 08 آبان 1384, 11:21 صبح
در مورد این فایل نظری ندارید ؟

zardros
یک شنبه 22 آبان 1384, 09:13 صبح
در مورد این فایل نظری ندارید ؟

سلام

از فایلتون واقعا خوشم اومد خیلی جالب بود .میشه لطف کنید توضیح بدید بعد از اینکه فایل DLL رو در پوشه windows کپی کردم چکار کنم؟

با تشکر فراوان و آرزوی موفقیت روزافزون

sarami
یک شنبه 22 آبان 1384, 23:00 عصر
شاپرک جان بهترین روش اینه که برنامه هاتو unbound بنویسی تا هم کنترل بیشتری روش داشته باشی و هم اینکه کمک کنی اطلاعات درست و بصورت کامل وارد بشه منظورم اینه وقتی bound کار میکنی وقتی کاربر یه فیلد رو وارد کنه براحتی میتونه به رکورد بعدی بره و این یعنی اضافه شدن یه عالمه رکورد ناقص و به همین علت گزارش های پر ایراد.

شاپرک
دوشنبه 23 آبان 1384, 07:56 صبح
اول بگم که این برنامه من نبود من خودمم گشتم و از سایت دیگه پیداش کردم اما برام جالب بود آخه هیچ کس جوابی براش نداشت .
جناب Zardros : میتونی تو همون مسیری که برنامه ات هست کپی کنی من امتحان کردم
ممنونم از راهنمایی شما آقای صارمی بله کاملا درسته من دقیقا به همین نتیجه رسیدم امیدواریم بتونیم در این زمینه از تجربیات شما استفاده کنیم *** مثل همیشه ***

Sheerkoshan
چهارشنبه 06 اردیبهشت 1385, 21:03 عصر
شاپرک جان بهترین روش اینه که برنامه هاتو unbound بنویسی تا هم کنترل بیشتری روش داشته باشی و هم اینکه کمک کنی اطلاعات درست و بصورت کامل وارد بشه منظورم اینه وقتی bound کار میکنی وقتی کاربر یه فیلد رو وارد کنه براحتی میتونه به رکورد بعدی بره و این یعنی اضافه شدن یه عالمه رکورد ناقص و به همین علت گزارش های پر ایراد.

می شه یه بزرگوار در مورد unbound یه توضیحی بده . آیا منظور اینه که یه فرم از روی جدولمون بسازیم اما اجزای توی فرم رو controlSource ش رو تعین نکنیم و وقتی فرم کامل شد توی یه دگمه save اول recordsource رو تعیین کنیم و ....
اگه برداشت من غلطِ لطفا واضحتر یکی عنایت بکنه ممنون می شم .

lililili
چهارشنبه 23 خرداد 1386, 08:19 صبح
خسته نباشید .لطفا کمکم کنید
خوب پس آخرش چی شد ؟برای این پروپرتی On Mouse Wheel چیکار کنیم؟

شاپرک
چهارشنبه 23 خرداد 1386, 08:58 صبح
اینم راه حلش

من که روش اش رو گفتم !!!!

rmsaaa
دوشنبه 03 دی 1386, 08:16 صبح
شاپرک جان من روش شما رو متوجه نشدم.میتونی راحت تر توضیح بدی

سیامک سیامک
چهارشنبه 17 بهمن 1386, 15:17 عصر
شاید با استفاده از رخداد On Mouse Wheel بتونی مشکلت رو حل کنی.
اگر راهش رو پیدا کردی به منم بگو!

hasanr
یک شنبه 08 فروردین 1389, 12:44 عصر
من روش شاپرک رو تست کردم اما جواب نداد
اگه دوستانم راهی بلدن ممنون میشم

تو این سایتها توضیحاتی داده :

http://www.databasedev.co.uk/disable_mousewheel.html
http://www.lebans.com/mousewheelonoff.htm#Tips%20from%20Users%20of%20Mou seWheelHook

hasanr
یک شنبه 08 فروردین 1389, 14:44 عصر
سرانجام با مطالعه همون سایتهایی که تو پست قبلی گفتم موفق شدم :

فایل ضمیمه را دانلود کنید (http://barnamenevis.org/forum/attachment.php?attachmentid=46137&d=1269773052) ( یا می توانید فایل جناب شاپرک را از پست 14 دانلود کنید (http://barnamenevis.org/forum/attachment.php?attachmentid=1240&d=1130584176) )
فایل MouseHook.dll را به مسیر C:\WINDOWS\system (یا به همان جایی که فایل برنامه تان قرار دارد) کپی کنید
فایل برنامه خود را باز کنید و ماژول modMouseHook را از فایل اکسس ضمیمه شده ، به فایل خودتان import کنید

این هم کدهای مربوط به Load و Unload فرمی که می خواهید دکمه وسط موس در آن فرم غیر فعال شود :


Private Sub Form_Load()
Dim blRet As Boolean
blRet = MouseWheelOFF(False)
End Sub

Private Sub Form_Unload(Cancel As Integer)
Dim blRet As Boolean
blRet = MouseWheelON
End Sub

bemilove
شنبه 04 تیر 1390, 23:21 عصر
ساده ترين روشي كه پيدا كردم..........يك كد بر روي رخداد open فرم...و چند تا ما‍ژول

constantine470
جمعه 15 آذر 1392, 12:28 عصر
من راهها بالا رو امتحان کردم

روشهایی که به api ها مربوط می شه توی همه ورژن ها کار نمی کنه
ولی روشی که توی پست 12 ارائه شده عالیترین و راحت ترین روشه حتی توی office 2013 اونم 64 بیتی.
من با کمی اصلاح دوباره می ذارمش



Private Sub Form_MouseWheel(ByVal Page As Boolean, ByVal Count As Long)


If Count >= 1 Then
DoCmd.GoToRecord , , acNext
ElseIf Count <= -1 Then
DoCmd.GoToRecord , , acPrevious
End If

End Sub



در روش فوق مقدار count رو از تعداد wheel mouse که توی کنترل پنل قایل دسترس هست گرفته می شه که من اون رو به 1 و 1- تغییر دادم تا حتی اگه کسی اومد مقدار رو کم و زیاد هم کرد (برای تغییر حساسیت) بازم کد کار کنه

در ضمن با عوض کردن - و بی علامت 1 در حقیقت با بالا و پایین بردن اسکرول موس فرم به رکورد بعدی و قبلی می رود

که من بنابر نیاز خودم کد رو در پست 12 برعکس کردم

ممنون از فرستنده با درایت پست 12