WindowEvent()
Syntax
Ereignis = WindowEvent()Beschreibung
Überprüft, ob in irgendeinem der geöffneten Fenster ein Ereignis stattfand. Diese Funktion kehrt umgehend zum Programmablauf zurück, seien Sie also vorsichtig, um nicht die gesamte CPU-Power mit einer Schleife ohne Wartefunktion ('non temporized loop') zu verschwenden... (eine gute Lösung dafür ist die Verwendung des Delay() Befehls am Ende der Schleife mit wenigstens 1 Millisekunde als Parameter).
Um die Programmausführung bis zum Stattfinden eines Ereignisses anzuhalten, benutzen Sie einfach den WaitWindowEvent() Befehl. Um die Fenster-Nummer, in dem das Ereignis stattfand, bestimmen zu können, müssen Sie die EventWindowID() Funktion benutzen.
Mögliche Ereignisse sind:#PB_Event_Menu : ein Menü wurde ausgewählt #PB_Event_Gadget : ein Gadget wurde gedrückt #PB_Event_CloseWindow : das Schließgadget vom Fenster wurde gedrückt #PB_Event_Repaint : der Fensterinhalt wurde zerstört und muss neu gezeichnet werden (nützlich für 2D Grafik-Operationen) #PB_Event_SizeWindow : das Fenster wurde in der Größe verändert #PB_Event_MoveWindow : das Fenster wurde verschoben #PB_Event_ActivateWindow : das Fenster wurde aktiviert (hat den Fokus erhalten)Sie finden ein einfaches Beispiel zum Event-Handling bei WaitWindowEvent().
Der beste Weg zum Handhaben einer WindowEvent()-Schleife sieht wie folgt aus:Repeat Event = WindowEvent() If Event ; ein Ereignis befindet sich in der "Queue" (Warteschlange), also arbeiten wir es ab .... Else Delay(1) ; kein Ereignis aufgetreten, lassen wir also anderen Programmen auch etwas CPU-Zeit zukommen! EndIf Until Event = #PB_Event_CloseWindowHinweis: Das 'Delay' sollte nicht nach jedem Ereignis eingefügt werden, denn wenn viele Ereignisse (wie Refresh, Gagdget Updates, etc.) auftreten, wird die Anwendung 20 ms (zumindest unter Windows) zwischen jedem Ereignis warten. Deshalb muss das Delay dann eingefügt werden, wenn keine Ereignisse empfangen werden. Eine weitere (API) Möglichkeit besteht darin, einen Timer parallel zu WaitWindowEvent() zu verwenden.
Unterstützte OS
All