maus hareketlerini sınırlama hakkında

Katılım
27 Şubat 2007
Mesajlar
58
Excel Vers. ve Dili
excel 2016
slmlr.formumda işlem yaparken mausun tekerleğiyle oynadığım zaman kayıtlı bilgilerimde tekerleğin çevriliş yönü itibariyle hareket ediyor yani diğer kayıtlara geçiyor. Bunun olmaması için maus hareketini sınırlamam mümkünmü acaba. Çalışmalarınızda başarılar dilerim.
 

beab05

Özel Üye
Katılım
19 Mart 2007
Mesajlar
1,418
Excel Vers. ve Dili
Office 2013
Merhaba;
Tabii ki mümkün mouse nin tekerleğinin pasif olmasını istediğiniz formun load ve unload olayına aşağıdaki kodları yazın..

Private Sub Form_Load()
' Turn the MouseWheel Off
Dim blRet As Boolean
blRet = MouseWheelOFF(False)
End Sub

Private Sub Form_Unload(Cancel As Integer)
' Turn the MouseWheel On
Dim blRet As Boolean
blRet = MouseWheelON
End Sub


daha sonra ekli dosyanın içindeki bas dosyasını modul olarak import edin ve dll dosyasını da veritabanının olduğu klasore ya da system32 içine atın...

Kolay gelsin..
 
Katılım
27 Şubat 2007
Mesajlar
58
Excel Vers. ve Dili
excel 2016
ilginize teşekkürler

deneyeceğim.Teşşekür ederim. Çalışmalarınızda başarılar dilerim
 
Katılım
7 Aralık 2006
Mesajlar
83
Excel Vers. ve Dili
Excel 2002 ingilizce
Bence BaŞkalarinin YazdiĞi Dll Yİ Kullanma :)
 

gitarisyen

Özel Üye
Katılım
25 Ağustos 2007
Mesajlar
218
Excel Vers. ve Dili
Microsoft Office 2003 Türkçe
Sayın beab05;

Öncelikle verdiğiniz kodun çok işime yaradığını söyleyerek teşekkür etmek istiyorum.

Ancak şöyle bir durum var: BAS dosyasını modül olarak Access uygulamama import ettim. DLL dosyasını da uygulamamın bulunduğu klasörün içine attım. (System32'ye de atarak denedim. İkisi de oluyor dediğiniz gibi). Fakat sizin dediğiniz gibi formun "Load" ve "Unload" olaylarına iki kodu da yazdığım zaman -sanıyorum formumun "Load" olayında başka bir kod yüklü olduğundan- sürekli hata verdi ve çalışmadı. Ben de bunun yerine Sadece verdiğiniz ilk kod olan

Private Sub Form_Load()
' Turn the MouseWheel Off
Dim blRet As Boolean
blRet = MouseWheelOFF(False)
End Sub

kodunu formun "Open" (Açıldığında) olayına yazdım ve çok rahat bir şekilde çalıştı. Mouse tekerleğinin hareketi tamamen iptal oldu.

İzninizle şunu sormak istiyorum: Verdiğiniz ikinci kodu kullanmamamın bir sakıncası olur mu ve ilk kodu formun "Açıldığında" olayına atamam doğru mu?

İlginize şimdiden teşekkür ediyor, çalışmalarınızda başarılar diliyorum...

Saygılarımla...
 

beab05

Özel Üye
Katılım
19 Mart 2007
Mesajlar
1,418
Excel Vers. ve Dili
Office 2013
Merhaba;

Unload ile formdan çıkıldığında mouse nin eski haline dönmesini sağlıyorsunuz.

Open, loaddan önce gelir ve kod iptalleri mümkündür mesela kayıt yoksa formu açma gibi.. Loadda ise olmaz..

Sıralama: Open, Load, Resize, Activate, Current ( Açıldığında, Yüklendiğinde, Yeniden Boyutlandığında, Aktif Olduğunda, Geçerli Olduğunda) ... Türkçe karşılıklarında ufak hata yapmış olabilirim..
 
Son düzenleme:

gitarisyen

Özel Üye
Katılım
25 Ağustos 2007
Mesajlar
218
Excel Vers. ve Dili
Microsoft Office 2003 Türkçe
Merhaba;

Unload ile formdan çıkıldığında mouse nin eski haline dönmesini sağlıyorsunuz.

Open, loaddan önce gelir ve kod iptalleri mümkündür mesela kayıt yoksa formu açma gibi.. Loadda ise olmaz..

Sıralama: Open, Load, Resize, Activate, Current ( Açıldığında, Yüklendiğinde, Yeniden Boyutlandığında, Aktif Olduğunda, Geçerli Olduğunda) ... Türkçe karşılıklarında ufak hata yapmış olabilirim..
Sayın beab05;

Zamanınızı ayırıp verdiğiniz bu değerli bilgiler için çok teşekkür ederim.
 
Katılım
5 Ekim 2007
Mesajlar
43
Excel Vers. ve Dili
Excel 2003 türkçe
merhaba
beab05 arkadaşın önderdiği dosya içindeki bas dosyasını bir türlü veritabanı modülüne import edemedi, acemi olduğumdan gerek; nasıl import etmem gerektiğini söyleyebilecek arkadaşa şimdiden teşekkür ederim
 

beab05

Özel Üye
Katılım
19 Mart 2007
Mesajlar
1,418
Excel Vers. ve Dili
Office 2013
Import edemediyseniz,bas dosyasını bir text editoruyle açın içindekileri kopyalayın sonra Access ten yeni bir modul oluşturup içine yapıştırın.
 
Katılım
5 Ekim 2007
Mesajlar
43
Excel Vers. ve Dili
Excel 2003 türkçe
arkadaşlar mausenin tekerleğiini ne yaptıysam kısıtlayamadım, ekte gönderdiğim dosya üzerinde örnek olması amacıyla uygulayabilecek arkadaşa şimdiden teşekkür ederim
 
Katılım
18 Nisan 2007
Mesajlar
2,053
Excel Vers. ve Dili
Access 2019
Merhaba...

#2 nolu cevapta sn beab05'in eklediği modülün text hali ;)

Kod:
[FONT=Courier New]Option Compare Database[/FONT]
[FONT=Courier New]Option Explicit[/FONT]
 
[FONT=Courier New]Private Declare Function LoadLibrary Lib "kernel32" _[/FONT]
[FONT=Courier New]Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long[/FONT]
 
[FONT=Courier New]Private Declare Function FreeLibrary Lib "kernel32" _[/FONT]
[FONT=Courier New](ByVal hLibModule As Long) As Long[/FONT]
 
[FONT=Courier New]Private Declare Function StopMouseWheel Lib "MouseHook" _[/FONT]
[FONT=Courier New](ByVal hWnd As Long, ByVal AccessThreadID As Long, Optional ByVal blIsGlobal As Boolean = False) As Boolean[/FONT]
 
[FONT=Courier New]Private Declare Function StartMouseWheel Lib "MouseHook" _[/FONT]
[FONT=Courier New](ByVal hWnd As Long) As Boolean[/FONT]
 
[FONT=Courier New]Private Declare Function GetCurrentThreadId Lib "kernel32" () As Long[/FONT]
 
[FONT=Courier New]' Instance returned from LoadLibrary call[/FONT]
[FONT=Courier New]Private hLib As Long[/FONT]
 
 
[FONT=Courier New]Public Function MouseWheelON() As Boolean[/FONT]
[FONT=Courier New]MouseWheelON = StartMouseWheel(Application.hWndAccessApp)[/FONT]
[FONT=Courier New]If hLib <> 0 Then[/FONT]
[FONT=Courier New]   hLib = FreeLibrary(hLib)[/FONT]
[FONT=Courier New]End If[/FONT]
[FONT=Courier New]End Function[/FONT]
 
[FONT=Courier New]Public Function MouseWheelOFF(Optional GlobalHook As Boolean = False) As Boolean[/FONT]
[FONT=Courier New]Dim s As String[/FONT]
[FONT=Courier New]Dim blRet As Boolean[/FONT]
[FONT=Courier New]Dim AccessThreadID As Long[/FONT]
 
[FONT=Courier New]On Error Resume Next[/FONT]
[FONT=Courier New]' Our error string[/FONT]
[FONT=Courier New]s = "Sorry...cannot find the MouseHook.dll file" & vbCrLf[/FONT]
[FONT=Courier New]s = s & "Please copy the MouseHook.dll file to your Windows System folder or into the same folder as this Access MDB."[/FONT]
 
[FONT=Courier New]' OK Try to load the DLL assuming it is in the Window System folder[/FONT]
[FONT=Courier New]hLib = LoadLibrary("MouseHook.dll")[/FONT]
[FONT=Courier New]If hLib = 0 Then[/FONT]
[FONT=Courier New]   ' See if the DLL is in the same folder as this MDB[/FONT]
[FONT=Courier New]   ' CurrentDB works with both A97 and A2K or higher[/FONT]
[FONT=Courier New]   hLib = LoadLibrary(CurrentDBDir() & "MouseHook.dll")[/FONT]
[FONT=Courier New]   If hLib = 0 Then[/FONT]
[FONT=Courier New]       MsgBox s, vbOKOnly, "MISSING MOUSEHOOK.dll FILE"[/FONT]
[FONT=Courier New]       MouseWheelOFF = False[/FONT]
[FONT=Courier New]       Exit Function[/FONT]
[FONT=Courier New]   End If[/FONT]
[FONT=Courier New]End If[/FONT]
 
[FONT=Courier New]' Get the ID for this thread[/FONT]
[FONT=Courier New]AccessThreadID = GetCurrentThreadId()[/FONT]
[FONT=Courier New]' Call our MouseHook function in the MouseHook dll.[/FONT]
[FONT=Courier New]' Please not the Optional GlobalHook BOOLEAN parameter[/FONT]
[FONT=Courier New]' Several developers asked for the MouseHook to be able to work with[/FONT]
[FONT=Courier New]' multiple instances of Access. In order to accomodate this request I[/FONT]
[FONT=Courier New]' have modified the function to allow the caller to[/FONT]
[FONT=Courier New]' specify a thread specific(this current instance of Access only) or[/FONT]
[FONT=Courier New]' a global(all applications) MouseWheel Hook.[/FONT]
[FONT=Courier New]' Only use the GlobalHook if you will be running multiple instances of Access![/FONT]
[FONT=Courier New]MouseWheelOFF = StopMouseWheel(Application.hWndAccessApp, AccessThreadID, GlobalHook)[/FONT]
 
[FONT=Courier New]End Function[/FONT]
 
 
[FONT=Courier New]'******************** Code Begin ****************[/FONT]
[FONT=Courier New]'Code courtesy of[/FONT]
[FONT=Courier New]'Terry Kreft & Ken Getz[/FONT]
[FONT=Courier New]'[/FONT]
[FONT=Courier New]Function CurrentDBDir() As String[/FONT]
[FONT=Courier New]Dim strDBPath As String[/FONT]
[FONT=Courier New]Dim strDBFile As String[/FONT]
[FONT=Courier New]   strDBPath = CurrentDb.Name[/FONT]
[FONT=Courier New]   strDBFile = Dir(strDBPath)[/FONT]
[FONT=Courier New]   CurrentDBDir = Left$(strDBPath, Len(strDBPath) - Len(strDBFile))[/FONT]
[FONT=Courier New]End Function[/FONT]
[FONT=Courier New]'******************** Code End ****************[/FONT]
 
Üst