Seite 1 von 1

Button beim drücken "1" und beim loslassen "0"...

Verfasst: 12.05.2015 13:22
von funkheld
Hallo, guten Tag.

Ich möchte bitte beim Drücken eines Button eine "1" ausgeben und beim loslassen einmal die "0".
Es soll nicht dauernd die "0" gesendet werden wenn der Button nicht gedrückt ist.

Danke.

Gruss

Re: Button beim drücken "1" und beim loslassen "0"...

Verfasst: 12.05.2015 13:37
von RSBasic
Z.B.:

Code: Alles auswählen

EnableExplicit

Global ButtonCallback

Procedure ButtonCallback(hWnd, uMsg, wParam, lParam) 
  Select uMsg
    Case #WM_LBUTTONDOWN
      Debug "1"
    Case #WM_LBUTTONUP
      Debug "0"
  EndSelect
  
  ProcedureReturn CallWindowProc_(ButtonCallback, hWnd, uMsg, wParam, lParam)
EndProcedure 

If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  ButtonGadget(1, 10, 10, 100, 20, "Drück mich rein", 0)
  
  ButtonCallback = SetWindowLongPtr_(GadgetID(1), #GWL_WNDPROC, @ButtonCallback())
  
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_CloseWindow
        End
    EndSelect
  ForEver
EndIf

Re: Button beim drücken "1" und beim loslassen "0"...

Verfasst: 12.05.2015 16:04
von Chimorin
Würde auch ohne WinAPI gehen. Du speicherst den aktuellen Status des Buttons in einer Variable und vergleichst ihn vorher mit dem alten Wert. Wenn der alte Wert 1 war, der Neue 0, wurde der Button gerade losgelassen.

Re: Button beim drücken "1" und beim loslassen "0"...

Verfasst: 12.05.2015 16:08
von RSBasic
@Chimorin
Er möchte soweit ich weiß nicht den Toggle-Statuswert eines Buttons ermitteln, sondern ob der Benutzer gerade auf den Button drückt und den wieder loslässt.

Re: Button beim drücken "1" und beim loslassen "0"...

Verfasst: 12.05.2015 18:02
von funkheld
Hallo, vielen dank.
Dein Programm funktioniert richtig RSBasic.

Danke.
Gruss