BindEvent()
Синтаксис
BindEvent(Event , @Callback() [, Window [, Object [, EventType]]])
Описание
Связывает событие с процедурой обратного вызова. Это дополнительный способ обработки событий в PureBasic, он без проблем работает со стандартными командами WindowEvent() и WaitWindowEvent(). Он позволяет получать уведомления о событиях в реальном времени, поскольку процедура обратного вызова может быть вызвана сразу же после возникновения события (это полезно для ScrollBarGadget(), изменение размера Окна в реальном времени и т.д.). Удалить связь события с процедурой обратного вызова можно с помощью команды UnbindEvent().
Параметры
Event Событие, которое требуется связать с процедурой обратного вызова. Полный список событий см. в описании WindowEvent(). Пользовательские события также поддерживаются при использовании PostEvent(). @Callback() Адрес процедуры обратного вызова, которая будет вызываться при возникновении события. Она должна быть объявлена следующим образом: Procedure EventHandler() ; Код процедуры EndProcedure
В рамках процедуры обратного вызова доступны стандартные функции, такие как EventGadget(), EventWindow(), EventMenu(), EventType() и EventData(), которые позволяют получить дополнительную информацию о событии.
Примечание: функции WindowEvent() и WaitWindowEvent() никогда не должны вызываться изнутри процедуры обратного вызова, иначе программа может быть заблокирована или вести себя непредсказуемо.Window (дополн.) Идентификационный Номер (#Window) конкретного Окна. Событие будет возникает только в том случае, если оно исходит из этого Окна. Значение #PB_All распространяет действие на все Окна (Если использовать значение #PB_All, то параметры 'Object' и 'EventType' также должны быть установлены на #PB_All). Object (дополн.) Идентификационный Номер (#Object) конкретного объекта. Событие будет связано с этим объектом. Это может быть Номер Гаджета, Пункта меню или SysTray. Значение #PB_All распространяет действие на все объекты (Если использовать значение #PB_All, то параметр 'EventType' также должен быть установлен на #PB_All) EventType (дополн.) Тип события, используемый при связывании события с процедурой обратного вызова. Полный список поддерживаемых типов см. в описании функции EventType(). Можно использовать значение #PB_All, чтобы связать событие любого типа с процедурой обратного вызова.
Возвращаемое значение
Ничего.
Пример
Procedure SizeWindowHandler() Debug "Событие изменения размера в Окне #" + EventWindow() ; Изменяет размер Гаджета, чтобы он соответствовал новым размерам Окна. ; ResizeGadget(0, #PB_Ignore, #PB_Ignore, WindowWidth(EventWindow())-20, WindowHeight(EventWindow())-20) EndProcedure OpenWindow(0, 100, 100, 200, 200, "Live 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
См. также
BindGadgetEvent(), BindMenuEvent(), UnbindEvent(), WindowEvent(), WaitWindowEvent()
Поддерживаемые OS
Все