PureBasic

BindGadgetEvent()

Синтаксис

BindGadgetEvent(#Gadget , @Callback() [, EventType])

Описание


Связывает событие указанного Гаджета с процедурой обратного вызова. Это дополнительный способ обработки событий в PureBasic, он без проблем работает со стандартными командами WindowEvent() и WaitWindowEvent(). Он позволяет получать уведомления о событиях в реальном времени, поскольку процедура обратного вызова может быть вызвана сразу же после возникновения события (это полезно для ScrollBarGadget(), ScrollAreaGadget() и т.д.). Удалить связь события Гаджета с процедурой обратного вызова можно с помощью команды UnbindGadgetEvent().

Параметры

#Gadget Номер, идентифицирующий указанный Гаджет, событие которого будет связано с процедурой обратного вызова.
@Callback() Адрес процедуры обратного вызова, которая будет вызываться при возникновении события. Она должна быть объявлена следующим образом:

Procedure EventHandler()
    ; Код процедуры
EndProcedure

В рамках процедуры обратного вызова доступны стандартные функции, такие как EventGadget(), EventWindow(), EventMenu(), EventType() и EventData(), которые позволяют получить дополнительную информацию о событии.

Примечание: функции WindowEvent() и WaitWindowEvent() никогда не должны вызываться изнутри процедуры обратного вызова, иначе программа может быть заблокирована или вести себя непредсказуемо.
EventType (дополн.) Тип события, используемый при связывании события с процедурой обратного вызова. Полный список поддерживаемых типов см. в описании функции EventType(). Можно использовать значение #PB_All, чтобы связать событие с любым типом с процедурой обратного вызова.

Возвращаемое значение

Ничего.

Пример

Procedure ButtonHandler()
    Debug "Событие нажатия кнопки в #Gadget" + EventGadget()
EndProcedure

OpenWindow(0, 100, 100, 200, 90, "Выберите тест", #PB_Window_SystemMenu)

ButtonGadget(0, 10, 10, 180, 30, "Нажми на меня")
BindGadgetEvent(0, @ButtonHandler())

ButtonGadget(1, 10, 50, 180, 30, "Нажми на меня")
BindGadgetEvent(1, @ButtonHandler())

Repeat
    Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow

См. также

BindEvent(), BindMenuEvent(), UnbindGadgetEvent(), WindowEvent(), WaitWindowEvent()

Поддерживаемые OS

Все

<- AddGadgetItem() - Оглавление Gadget - ButtonGadget()->