Seite 2 von 3
Verfasst: 25.03.2009 11:07
von c4s
php-freak hat geschrieben:Es tut mir leid das ich noch einmal fragen muss.
Allerdings gibts die Funktion:
Nicht mehr.
Hier bekommst du nun einen kleinen Denkanstoß von mir, weil ich heute so
gut gelaunt bin:
Zur Abfrage des Mausrades brauchst du diese Beispielfunktion(!) gar nicht.
Verfasst: 25.03.2009 11:55
von php-freak
Code: Alles auswählen
Global x.w
Procedure.w MouseWheelDelta() ;liefert +1/-1, je nach BewegungsRichtung des MausRades
x.w = ((EventwParam()>>16)&$FFFF) ;!!! ZielTyp mu .W sein !!!
ProcedureReturn -(x / 120)
EndProcedure
Repeat
Delay(5)
x.w = ((EventwParam()>>16)&$FFFF)
Debug x
ForEver
So gehts schonmal nicht!
Verfasst: 25.03.2009 11:58
von DarkDragon
Eventwparam funktioniert nur mit eine Fenster und entsprechender Ereignisbehandlung.
Außerdem solltest du nicht den Code aus der Funktion an die Stelle manuell einfügen, sondern die Funktion dort aufrufen.
Verfasst: 25.03.2009 12:57
von Deluxe0321
@sibru Danke hatte den Code letzte woche, trotz suche nicht finden können! Sehr brauchbares snippet ^^
Verfasst: 25.03.2009 14:05
von Fluid Byte
Ich sach nur Scroolrad ...
Verfasst: 25.03.2009 18:51
von sibru
Wo is´n der Avar von php-freak abgeblieben ? (das Clown-Bildchen...)
Aber auch ohne Diesen hab´ ich´s inzwischen bemerkt, ist ja echt erschütternd...
Verfasst: 25.03.2009 19:01
von Fluid Byte
php-freak hat geschrieben:Es tut mir leid das ich noch einmal fragen muss.
Allerdings gibts die Funktion:
Nicht mehr.
ZeHa hat geschrieben:

Verfasst: 25.03.2009 20:01
von php-freak
Naja ist hier keiner der mir helfen kann?
Verfasst: 25.03.2009 20:33
von php-freak
So bin im Englischen Forum fündig geworden:
Code: Alles auswählen
Procedure.l WinCallback(hwnd, msg, wparam, lparam)
result = #PB_ProcessPureBasicEvents
Select msg
Case #WM_MOUSEWHEEL
If wparam < 0
direction$ = "Scrolling towards user"
Else
direction$ = "Scrolling away from user"
EndIf
SetGadgetText(0, direction$)
EndSelect
ProcedureReturn result
EndProcedure
If OpenWindow(0, 0, 0, 300, 200, "Detect Mousewheel", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
SetWindowCallback(@WinCallback())
TextGadget(0, 10, 50, 280, 25, "", #PB_Text_Center)
Repeat
event = WaitWindowEvent()
Until event = #PB_Event_CloseWindow
EndIf
End
Dient nur der Vollständigkeit.
Verfasst: 25.03.2009 20:37
von Fluid Byte
Geht ausnahmsweise auch ohne Callback:
Code: Alles auswählen
OpenWindow(0,0,0,320,240,"void",#PB_Window_SystemMenu | #PB_Window_ScreenCentered)
Repeat
EventID = WaitWindowEvent()
If EventID = #WM_MOUSEWHEEL
WheelPos = EventwParam() >> 16
If WheelPos > 0 : Debug "MOUSE SCROLL NACH OBEN" : EndIf
If WheelPos < 0 : Debug "MOUSE SCROLL NACH UNTEN" : EndIf
EndIf
Until EventID = #PB_Event_CloseWindow