BindEvent()

Syntax

BindEvent(Event, @Callback() [, Window [, Objekt [, EventTyp]]])
Beschreibung
Verknüpft ("bindet", englisch "bind") ein Ereignis mit einem Callback. Dabei handelt es sich um eine zusätzliche Möglichkeit zur Verwaltung von Ereignissen (englisch "events") in PureBasic, welche problemlos mit den regulären WindowEvent() / WaitWindowEvent() Befehlen arbeitet. Es ermöglicht auch die Nutzung von Echtzeit-Ereignismeldungen (englisch "realtime event notifications"), da die Callback-Funktion aufgerufen werden kann, sobald das Ereignis auftritt (nützlich für ScrollBarGadget(), Änderung der Fenstergröße in Echtzeit, etc.). Ein Ereignis kann mittels UnbindEvent() losgelöst (englisch "unbinded") werden.

Parameter

Event Das zu verknüpfende Ereignis (englisch "event"). Für eine vollständige Liste aller Ereignisse siehe WindowEvent(). Benutzerdefinierte Ereignisse werden bei Verwendung von PostEvent() ebenfalls unterstützt.
@Callback() Die beim Auftreten des Ereignisses aufzurufende Callback-Prozedur. Diese muss wie folgt deklariert werden:
  Procedure EventHandler()
    ; Code
  EndProcedure
Die regulären Funktionen wie EventGadget(), EventWindow(), EventMenu(), EventType() und EventData() sind innerhalb des Callbacks verfügbar, um weitere Informationen über das Ereignis zu erhalten.

Hinweis: WindowEvent() und WaitWindowEvent() sollten nie aus einem Callback heraus aufgerufen werden. Dies kann das Programm blockieren oder falsches Verhalten hervorrufen.
Window (optional) Die #Window Fensternummer, mit der das Ereignis verknüpft werden soll. Das Ereignis wird nur ausgelöst, wenn es auf diesem Fenster auftritt. #PB_All kann angegeben werden, um das Ereignis mit allen Fenstern zu verknüpfen (falls angegeben, müssen 'Object' und 'EventType' Parameter ebenso als #PB_All gesetzt werden).
Objekt (optional) Die Objekt-Nummer, mit der das Ereignis verknüpft werden soll. Dies kann ein Gadget, ein Menüeintrag oder eine Systray Statusleisten-Nummer sein. #PB_All kann verwendet werden, um das Ereignis mit allen Objekten zu verknüpfen (falls angegeben, muß der 'EventType' Parameter ebenso als #PB_All gesetzt werden).
EventTyp (optional) Der Ereignis-Typ, mit dem das Ereignis verknüpft werden soll. Für eine vollständige Liste der unterstützten Typen siehe EventType(). #PB_All kann verwendet werden, um das Ereignis mit allen Typen zu verknüpfen.

Rückgabewert

Diese Funktion gibt keinen Wert zurück.

Beispiel

  Procedure SizeWindowHandler()
    Debug "Size event on window #" + EventWindow()
    
    ; Größe des Gadgets verändern, um es an die neuen Fenster-Abmessungen anzupassen
    ;
    ResizeGadget(0, #PB_Ignore, #PB_Ignore, WindowWidth(EventWindow())-20, WindowHeight(EventWindow())-20)
  EndProcedure
  
  OpenWindow(0, 100, 100, 200, 200, "Echtzeit Resize Test", #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

Siehe auch

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

Unterstützte OS

Alle

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