GetGadgetState() - Unterschiede zwischen Windows und Mac?

Anfängerfragen zum Programmieren mit PureBasic.
Giansauna
Beiträge: 6
Registriert: 21.12.2014 18:20

GetGadgetState() - Unterschiede zwischen Windows und Mac?

Beitrag von Giansauna »

Ich habe ein Programm mit PB 5.31 (64bit) für Mac erstellt. Darin frage ich Klicks auf Buttons mit GetGadgetState() ab und alles funktioniert prima.
Nun bin ich sehr verwundert, dass das so mit der Windows-Version von PB 5.31 (32bit) nicht klappt: der exakt gleiche Code funktioniert auf Windows nicht, d.h. ein Klick löst keine Ausgabe aus. Beiliegend ein Demo-Code, der bei mir nur auf dem Mac macht, was er soll. Kann mir jemand erklären, wieso das so ist?
Viele Grüsse, Gian-Reto.

Code: Alles auswählen

If OpenWindow(0, 0, 0, 200, 200, "GetGadgetState", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  ButtonGadget(10, 50, 30, 100, 25, "Button")
EndIf
Repeat
  Select WaitWindowEvent()  
    Case #PB_Event_Gadget
      If GetGadgetState(10)
        Debug "Klick"
      EndIf
    Case #PB_Event_CloseWindow
      End
  EndSelect
ForEver
End
Benutzeravatar
CSHW89
Beiträge: 489
Registriert: 14.12.2008 12:22

Re: GetGadgetState() - Unterschiede zwischen Windows und Mac

Beitrag von CSHW89 »

Dass es für Mac funktioniert, ist eher Zufall. GetGadgetState ist nicht dafür gedacht, einen Klick zu triggern. Bei einem ButtonGadget ist der Befehl nur dann sinnvoll, wenn es mit #PB_Button_Toggle erstellt wurde. Ein Klick feuert immer ein #PB_Event_Gadget. Du musst nur prüfen, von welchem Gadget das Event kam (mit EventGadget()):

Code: Alles auswählen

If OpenWindow(0, 0, 0, 200, 200, "GetGadgetState", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  ButtonGadget(10, 50, 30, 100, 25, "Button 10")
  ButtonGadget(11, 50, 60, 100, 25, "Button 11")
EndIf
Repeat
  Select WaitWindowEvent() 
    Case #PB_Event_Gadget
      Select EventGadget()
        Case 10
          Debug "Klick 10"
        Case 11
          Debug "Klick 11"
      EndSelect
    Case #PB_Event_CloseWindow
      End
  EndSelect
ForEver
End
lg Kevin
Bild Bild Bild
http://www.jasik.de - Windows Hilfe Seite
padawan hat geschrieben:Ich liebe diese von hinten über die Brust ins Auge Lösungen
Giansauna
Beiträge: 6
Registriert: 21.12.2014 18:20

Re: GetGadgetState() - Unterschiede zwischen Windows und Mac

Beitrag von Giansauna »

Aha - es ginge also auch einfach... :-)
Herzlichen Dank!
Antworten