Seite 1 von 1

Button klick auswerten

Verfasst: 03.04.2011 18:28
von ozoffi
Hallo!

Normalerweise wird offenbar der Status eines angeklickten Buttons erst zurückgegeben, wenn man den Klick beendet hat (also die Maustaste wieder los lässt)- Bleibt der Button "gedrückt" kommt kein Wert zurück.

Genau dass will ich aber auswertgen. Ich will nicht nur wissen, OB ein Button gedrückt wurde, sondern wie lange.

D.H. wenn ich einen Button kurz drücke, wird ein Flag halt kurz auf 1 und dann wieder auf 0 gesetzt,
Wenn ich den Button lange drücke, bleibt das Flag so lange auf 1, wie eben der Button gedrückt wird.

Code: Alles auswählen


Repeat
  
   Event0 = WaitWindowEvent(0)     
     Select Event0     
       Case #PB_Event_Gadget   
         eventGadget = EventGadget()
        Select EventGadget()
        Case EventGadget()        
            If EventGadget() = #ButtonFT0 
            debug "X"
           endif
        EndSelect               
       
       Case #PB_Event_CloseWindow
        Quit = 1
    EndSelect  
    
 Until Quit = 1 
 End

Damit bekomme ich eben nur zurück OB ein Button gedrückt "wurde", aber nicht wie lange, bzw. ob er noch immer gedrückt ist....

Gibt es da eine Möglchkeit?

lg
Oliver

Re: Button klick auswerten

Verfasst: 03.04.2011 18:37
von RSBasic
Das kannst du nur über WinAPI machen.

Meinst du etwa so?

Code: Alles auswählen

EnableExplicit

Global lpPrevFunc

Procedure ButtonProc(hWnd,uMsg,wParam,lParam)
 
  Select uMsg
    Case #WM_LBUTTONDOWN
      Debug "Linke Maustaste wird gedrückt"
    Case #WM_LBUTTONUP
      Debug "Linke Maustaste wurde losgelassen"
     
  EndSelect
 
  ProcedureReturn CallWindowProc_(lpPrevFunc,hWnd,uMsg,wParam,lParam)
EndProcedure

If OpenWindow(0,0,0,500,250,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  ButtonGadget(1,10,10,100,20,"Button",0)
 
  lpPrevFunc = SetWindowLongPtr_(GadgetID(1),#GWL_WNDPROC,@ButtonProc())
 
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf

Re: Button klick auswerten

Verfasst: 03.04.2011 20:06
von TomS
Falls du nicht alles von Hand machen willst: http://purebasic.fr/english/viewtopic.php?f=12&t=45830

Re: Button klick auswerten

Verfasst: 04.04.2011 08:59
von ozoffi
Vielen Danke für den Tipp und den Link.
Da werde ich wohl nochmal alles umstellen ....