BindGadgetEvent()

Syntax

BindGadgetEvent(#Gadget, @Callback() [, EventTyp])
Description
Verknüpft ("bindet", englisch "bind") ein Gadget-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(), ScrollAreaGadget() etc.). Ein Gadget kann mittels UnbindGadgetEvent() losgelöst (englisch "unbinded") werden.

Parameters

#Gadget Das Gadget, mit dem das Ereignis verknüpft werden soll.
@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 niemals von innerhalb eines Callbacks aufgerufen werden, oder das Programm könnte gesperrt ("locked") werden oder ein falsches Verhalten zeigen.
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 jedem Typ zu verknüpfen.

Return value

None.

Example

  Procedure ButtonHandler()
    Debug "Button click event on gadget #" + EventGadget()
  EndProcedure
  
  OpenWindow(0, 100, 100, 200, 90, "Click test", #PB_Window_SystemMenu)
  
  ButtonGadget(0, 10, 10, 180, 30, "Click me")
  BindGadgetEvent(0, @ButtonHandler())
  
  ButtonGadget(1, 10, 50, 180, 30, "Click me")
  BindGadgetEvent(1, @ButtonHandler())
  
  Repeat
    Event = WaitWindowEvent()
  Until Event = #PB_Event_CloseWindow

See Also

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

Supported OS

All

<- AddGadgetItem() - Gadget Index - ButtonGadget() ->