PostEvent()

Syntax

Ergebnis = PostEvent(Event [, Window, Objekt [, Typ [, Daten]]])
Beschreibung
Sendet ein Ereignis am Ende der internen Ereignis-Warteschlange und setzt die Programmausführung fort, ohne auf die Verarbeitung der Nachricht zu warten.

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

Gibt einen Wert ungleich Null zurück, wenn das Ereignis ohne Fehler gesandt wurde, andernfalls Null.

Anmerkungen

Dieser Befehl kann sehr nützlich für die Kommunikation zwischen Threads und der Haupt-Ereignis-Warteschlange sein. Zum Beispiel kann ein Thread ein benutzerdefiniertes Ereignis (mit zugewiesenen Daten) senden, wenn er mit seiner Verarbeitung fertig ist, wodurch die Haupt-Ereignis-Warteschlange 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

<- OpenWindow() - Window Inhaltsverzeichnis - RemoveKeyboardShortcut() ->