BindEvent()

Syntaxe

BindEvent(Evenement, @Callback() [, Fenetre [, Objet [, TypeEvenement]]])
Description
Ajoute un évènement à la file d'attente des évènements grace à une procédure dite de 'callback'.

C'est un moyen supplémentaire pour gérer les évènements dans PureBasic, qui fonctionne sans problème avec les habituelles commandes WindowEvent() et WaitWindowEvent(). Cela permet également d'avoir des notifications d'évènements en temps réel car le callback peut être invoqué dès que l'évènement se produit (utile pour ScrollBarGadget(), redimensionnement d'une fenêtre, etc.) Un évènement peut être supprimé avec UnbindEvent().

Arguments

Evenement L'évènement à ajouter.

Pour une liste complète des évènements, consultez WindowEvent().
Les évènements personnalisés sont également pris en charge, en utilisant PostEvent().
@Callback() La procédure à appeler lorsque l'évènement se produit. Elle doit être déclarée comme ceci:
  Procedure EventHandler()
    ; Du code ici...
  EndProcedure
Les fonctions de PureBasic comme EventGadget(), EventWindow(), EventMenu(), EventType() et EventData() sont disponibles pour obtenir plus d'informations sur l'évènement.
Note: WindowEvent() et WaitWindowEvent() ne devraient jamais être appelées depuis l'intérieur du Callback() sinon le programme peut se verrouiller ou avoir un comportement erroné.
Fenetre (optionnel) Le numéro de la fenêtre à utiliser.

L'évènement se produit uniquement s'il provient de cette fenêtre.
Avec #PB_All, toutes les fenêtres sont susceptibles d'être à l'origine de l'évènement (si spécifié, les paramètres "Objet" et "TypeEvenement" doivent être mis à #PB_All).
Objet (optionnel) L'évènement sera lié à un objet en particulier. Pour cela, utiliser son numéro d'identification.

Ce peut être un gadget, un élément d'un menu ou un systray.
Avec #PB_All tous les gadgets sont susceptibles d'être à l'origine de l'évènement (si spécifié, le paramètre "TypeEvenement" doit être mis à #PB_All).
TypeEvenement (optionnel) Le type d'évènement en particulier.

Pour une liste complète des types pris en charge, voir EventType().
Avec #PB_All tous les types d'évènements sont susceptibles d'être à l'origine de l'évènement.

Valeur de retour

Aucune.

Exemple

  Procedure SizeWindowHandler()
    Debug "Evènement - Redimensionnement- de la fenêtre #" + EventWindow()
    
    ; Redimensionne le gadget pour l'adapter aux nouvelles dimensions de la fenêtre
    ;
    ResizeGadget(0, #PB_Ignore, #PB_Ignore, WindowWidth(EventWindow())-20, WindowHeight(EventWindow())-20)
  EndProcedure
    
  OpenWindow(0, 100, 100, 200, 200, "Redimensionnement en temps réel", #PB_Window_SizeGadget | #PB_Window_SystemMenu)
  EditorGadget(0, 10, 10, 180, 180)
   
  BindEvent(#PB_Event_SizeWindow, @SizeWindowHandler())
  
  Repeat
    Event = WaitWindowEvent()
  Until Event = #PB_Event_CloseWindow

Voir aussi

BindGadgetEvent(), BindMenuEvent(), UnbindEvent(), WindowEvent(), WaitWindowEvent()

OS Supportés

Tous

<- AddWindowTimer() - Window Index - CloseWindow() ->