PostEvent()
Syntax
PostEvent(Event [, Window, Objekt [, Typ [, Daten]]])Beschreibung
Sendet ein Ereignis am Ende der internen Ereignis-Warteschleife.
Parameter
Event Das zu sendende Ereignis. Für eine Liste der PureBasic-Ereignisse siehe WindowEvent(). Bei der Verwendung von benutzerdefinierten Ereignissen (englisch "custom events") muss der erste Wert mindestens #PB_Event_FirstCustomValue entsprechen, um nicht mit internen Ereignissen zu kollidieren. Window (optional) Die mit dem Ereignis verknüpfte Fenster-Nummer. Bei der Verwendung eines benutzerdefinierten Ereignisses, kann dies jede Ganzzahl sein. Dieser Wert kann mit EventWindow() ermittelt werden. Objekt (optional) Die mit dem Ereignis verknüpfte Objekt-Nummer. Dies kann zum Beispiel ein Gadget oder eine Menü-Nummer sein. Bei der Verwendung eines benutzerdefinierten Ereignisses, kann dies jede positive Ganzzahl sein (inklusive der Null). Dieser Wert kann mit EventGadget() ermittelt werden. Typ (optional) Der mit dem Ereignis verknüpfte Typ. Bei der Verwendung eines benutzerdefinierten Ereignisses, muss der erste Wert mindestens #PB_EventType_FirstCustomValue entsprechen, um nicht mit internen Werten zu kollidieren. Dieser Wert kann mit EventType() ermittelt werden. Daten (optional) Die mit dem Ereignis verknüpften Daten. Diese sind nur gültig bei Verwendung eines benutzerdefinierten Ereignisses und können jede Ganzzahl sein. Dieser Wert kann mit EventData() ermittelt werden.
Rückgabewert
Diese Funktion gibt keinen Wert zurück.
Anmerkungen
Dieser Befehl kann sehr nützlich für die Kommunikation zwischen Threads und der Haupt-Ereignisschleife sein. Zum Beispiel kann ein Thread ein benutzerdefiniertes Ereignis (mit zugewiesenen Daten) senden, wenn er mit seiner Verarbeitung fertig ist, wodurch die Hauptschleife dieses erhält und die weitere Verarbeitung stattfinden kann.; Alle unsere beutzerdefinierten Ereignisse Enumeration #PB_Event_FirstCustomValue #EventBeginProcessing #EventProcessingFinished EndEnumeration Procedure Thread(Value) PostEvent(#EventBeginProcessing) Delay(3000) PostEvent(#EventProcessingFinished) EndProcedure OpenWindow(0, 200, 200, 100, 100, "PostEvent") CreateThread(@Thread(), 0) Repeat Event = WaitWindowEvent() Select Event Case #EventBeginProcessing Debug "Thread begin processing " Case #EventProcessingFinished Debug "Thread processing finished" EndSelect Until Event = #PB_Event_CloseWindow
Siehe auch
WindowEvent(), EventWindow(), EventGadget(), EventType(), EventData()
Unterstützte OS
Alle