Button Gadget Ereignis bei Drücken UND Loslassen
Verfasst: 12.02.2020 22:59
Hallo Forum,
seit ein paar Tagen versuche ich, ein Button Gadget dazu zu kriegen, beim Drücken UND beim Loslassen ein Ereignis zu erzeugen. Konkret geht es um dieses Program:
https://www.mikrocontroller.net/attachm ... anager.zip
Im ZIP befindet sich auch der Source.
Mit dem folgenden kopierten und modifizierten Source habe ich es geschafft, auch beim Drücken den richtigen Button zu bekommen. ABER: Beim klicken ausserhalb eines Gadgets bekomme ich das letzte aktive Gadget zurück, das das den Fokus NOCH hat:
Gibt es eine einfache Möglichkeit, das Problem zu lösen? Die komplizierte Variante wäre, die Mauskoordinaten auszuwerten ob dort ein/das Button ist. Was ich allerdings bei der Anzahl vermeiden möchte.
Wen es interessiert: Im Tab "Weichen" möchte ich die Buttons "Rot" und "Grün" ändern, dass beim Niederdrücken der Einschaltbefehl gesendet wird und beim Loslassen der Ausschaltbefehl. Im Moment ist das fehlerhaft. Sonst muss ich eine Zeitverzögerung einbauen...
Danke und Gruss Chregu
seit ein paar Tagen versuche ich, ein Button Gadget dazu zu kriegen, beim Drücken UND beim Loslassen ein Ereignis zu erzeugen. Konkret geht es um dieses Program:
https://www.mikrocontroller.net/attachm ... anager.zip
Im ZIP befindet sich auch der Source.
Mit dem folgenden kopierten und modifizierten Source habe ich es geschafft, auch beim Drücken den richtigen Button zu bekommen. ABER: Beim klicken ausserhalb eines Gadgets bekomme ich das letzte aktive Gadget zurück, das das den Fokus NOCH hat:
Code: Alles auswählen
If OpenWindow(0, 0, 0, 230, 90, "Event-Handling Beispiel...", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ButtonGadget (1, 10, 10, 200, 20, "Klick mich")
CheckBoxGadget(2, 10, 40, 200, 20, "Markiere mich")
If CreateMenu(0, WindowID(0))
MenuTitle("Menu")
MenuItem(1, "Eintrag 1")
MenuItem(2, "Eintrag 2")
MenuItem(3, "Eintrag 3")
EndIf
Repeat
Event = WaitWindowEvent()
;Debug event
Select Event
Case #PB_Event_Gadget
Select EventGadget()
Case 1 : Debug "Schalter 1 losgelassen!"
Case 2 : Debug "Schalter 2 losgelassen!"
EndSelect
Case #PB_Event_Menu
Select EventMenu()
Case 1 : Debug "Menü-Eintrag 1 angeklickt!"
Case 2 : Debug "Menü-Eintrag 2 angeklickt!"
Case 3 : Debug "Menü-Eintrag 3 angeklickt!"
EndSelect
Case #WM_LBUTTONDOWN
Debug "Schalter "+Str(GetActiveGadget())+" gedrückt!"
EndSelect
Until Event = #PB_Event_CloseWindow
EndIf
Wen es interessiert: Im Tab "Weichen" möchte ich die Buttons "Rot" und "Grün" ändern, dass beim Niederdrücken der Einschaltbefehl gesendet wird und beim Loslassen der Ausschaltbefehl. Im Moment ist das fehlerhaft. Sonst muss ich eine Zeitverzögerung einbauen...
Danke und Gruss Chregu