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:

Code: Alles auswählen

ChangeZeile()
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:

Code: Alles auswählen

ChangeZeile()
Nicht mehr.
ZeHa hat geschrieben::freak:
:lol:

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