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