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 EndProcedureDie 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