WaitWindowEvent()
Syntaxe
Evenement = WaitWindowEvent([Minuteur])Description
Bloque l'exécution du programme jusqu'à ce qu'un évènement intervienne. Cette fonction est identique à WindowEvent(), mais le blocage de l'exécution est très important dans un environnement multi-tâches.
Une application devrait, si possible, toujours utiliser cette fonction en préférence à WindowEvent(). Pour plus d'informations sur les évènements supportés, voir WindowEvent().
Le paramètre optionnel 'Minuteur' permet de spécifier le temps maximal (en millisecondes) durant lequel la fonction sera bloquante si aucun évènement ne survient.
Notes: Quand une fenêtre est ouverte dans un thread, le thread doit appeler WindowEvent() ou WaitWindowEvent() dans une boucle pour gérer les évènements pour cette fenêtre, car les évènements des fenêtres sont propres à chaque thread.
WaitWindowEvent() ne peut être appelé qu'une seule fois par boucle d'évènements, sinon les évènements seront "perdus" (chaque événement ne peut être traité qu'une seule fois et n'est plus disponible pour un deuxième traitement).
Exemple
If OpenWindow(0, 0, 0, 230, 90, "Exemple de gestion des évènements...", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ButtonGadget (1, 10, 10, 200, 20, "Cliquez moi")
CheckBoxGadget(2, 10, 40, 200, 20, "Cochez moi")
If CreateMenu(0, WindowID(0))
MenuTitle("Menu")
MenuItem(1, "Item 1")
MenuItem(2, "Item 2")
MenuItem(3, "Item 3")
EndIf
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
Select EventGadget()
Case 1 : Debug "Bouton 1 cliqué!"
Case 2 : Debug "Bouton 2 cliqué!"
EndSelect
Case #PB_Event_Menu
Select EventMenu()
Case 1 : Debug "Menu item 1 cliqué!"
Case 2 : Debug "Menu item 2 cliqué!"
Case 3 : Debug "Menu item 3 cliqué!"
EndSelect
EndSelect
Until Event = #PB_Event_CloseWindow
EndIf
OS Supportés
Tous