Nach einem WaitWindowEvent werden einige Funktionen verfügbar, mit denen du ermittlen kannst, was für ein Event aufgetreten ist und wo.
Die Funktion Event() gibt das Event zurück, z.B. #PB_Event_Gadget, wenn das Event mit einem Gadget zu tun hat. Danach solltest du prüfen, was passiert ist, das geht mittels EventType(). #PV_EventType_LeftClick gibt an, dass mit der Maus geklickt wurde. EventGadget() gibt das passende Gadget zurück. Wenn du das in 3 Select-Abfragen verschachtelst hast du eine übersichtliche Struktur zur Abarbeitung:
Code: Alles auswählen
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break;Loop verlassen
Case #PB_Event_Menu;Menüs und Shortcuts
Select EventMenu()
Case #MenuNummer
;Tu was
Case #MenuNummerZwei
;Tu was anderes
EndSelect
Case #PB_Event_Timer;Timer
Select EventTimer()
Case #TimerEins
;Tu was
Case #TimerZwei
;Tu was anderes
EndSelect
Case #PB_Event_Gadget;Gadgets
Select EventType() ;Was ist passiert?
Case #PB_EventType_LeftClick;Mausklick mit links
Select EventGadget();Welches Gadget
Case #GadgetEins
;Tu was
Case #GadgetZwei
;Tu was anderes
EndSelect
Case #PB_EventType_Change;z.B. anderes Element in ListIconGadget angeklickt
Select EventGadget();Welches Gadget
Case #GadgetDrei
;Tu was
EndSelect
EndSelect
EndSelect
ForEver
Das ist meine Methode, hier als Prototyp (also logischerweise die gewünschten Events, EventTypes, Gadgets...anpassen). Am Anfang etwas mehr Arbeit, dann aber übersichtlich und sturkturiert. Übrigens bleiben die Werte, die Event(), EventGadget() etc. zurückgeben so lange erhalten, bis wieder WaitWindowEvent() aufgerufen wird.