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

Für allgemeine Fragen zur Programmierung mit PureBasic.
funkheld
Beiträge: 649
Registriert: 31.12.2009 11:58

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

Beitrag 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
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

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

Beitrag 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
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Chimorin
Beiträge: 451
Registriert: 30.01.2013 16:11
Computerausstattung: MSI GTX 660 OC mit TwinFrozr III
6Gb DDR 3 RAM
AMD Phenom II X4 B55 @ 3,6GHz
Windows 7 Home Premium 64-bit

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

Beitrag 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.
Bild

- formerly known as Bananenfreak -
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

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

Beitrag 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.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
funkheld
Beiträge: 649
Registriert: 31.12.2009 11:58

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

Beitrag von funkheld »

Hallo, vielen dank.
Dein Programm funktioniert richtig RSBasic.

Danke.
Gruss
Antworten