PostEvent()

Syntaxe

Resultat = PostEvent(Evenement [, Fenetre, Objet [, Type [, Valeur]]])
Description
Envoie un évènement à la fin de la file d'attente interne et continue l'exécution du programme sans attendre le traitement du message.

Arguments

Evenement L'évènement à envoyer.

Pour une liste des évènements PureBasic, voir WindowEvent().
Lors de l'utilisation d'évènements personnalisés, la première valeur doit être au moins #PB_Event_FirstCustomValue, pour ne pas entrer en conflit avec les évènements internes.
Fenetre (optionnel) Le numéro de fenêtre associé à l'évènement.

Lors de l'utilisation d'un évènement personnalisé, cela peut être n'importe quel nombre entier.
Cette valeur peut être récupérée avec EventWindow().
Objet (optionnel) Le numéro de l'objet associé à l'évènement.

Cela peut être par exemple un numéro de gadget ou de menu.
Lors de l'utilisation d'un évènement personnalisé, cela peut être n'importe quel nombre entier positif.
Cette valeur peut être récupérée avec EventGadget().
Type (optionnel) Le type associé à l'évènement.

Lors de l'utilisation d'un évènement personnalisé la première valeur doit être au moins égale à #PB_EventType_FirstCustomValue, pour ne pas entrer en conflit avec les valeurs internes.
Cette valeur peut être récupérée avec EventType().
Valeur (optionnel) La données associées à l'évènement.

Seulement avec un évènement personnalisé, cela peut être n'importe quel nombre entier.
Cette valeur peut être récupérée avec EventData().

Valeur de retour

Renvoie une valeur non nulle si l'envoi de l'évènement à la fin de la file d'attente interne s'est déroulé sans erreur, zéro sinon.

Remarques

Cette commande peut être très utile pour communiquer entre les threads et la boucle principale des évènements. Par exemple, un thread peut envoyer un évènement personnalisé quand il a fini son traitement (avec une donnée associée), de sorte que la boucle principale peut utiliser cette donnée dans un traitement ultérieur.
  ; Tous nos évènements personnalisés
  Enumeration #PB_Event_FirstCustomValue
    #EvenementDebutAction
    #EvenementFinAction
  EndEnumeration
  
  
  Procedure Thread(Valeur)
    PostEvent(#EvenementDebutAction)
    
    Delay(3000)
    PostEvent(#EvenementFinAction)
  EndProcedure
  
  OpenWindow(0, 200, 200, 100, 100, "PostEvent")
  
  CreateThread(@Thread(), 0)
  
  Repeat
    Event = WaitWindowEvent()
    
    Select Event
      Case #EvenementDebutAction
        Debug "Le Thread commence une action... "
        
      Case #EvenementFinAction
        Debug "Le Thread a terminé une action"
    EndSelect
    
  Until Event = #PB_Event_CloseWindow

Voir aussi

WindowEvent(), EventWindow(), EventGadget(), EventType(), EventData()

OS Supportés

Tous

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