Вы можете использовать функцию UNBINDEVENTS() для отвязки или отсоединения события, которое было привязано к объекту Visual FoxPro с помощью функции BINDEVENT(). Для отсоединения события от объектов Component Object Model (COM), используйте функцию EVENTHANDLER(). Имеется три версии синтакиса вызова этой функции.

UNBINDEVENTS(oEventSource, cEvent, oEventHandler, cDelegate)
UNBINDEVENTS(oEventObject)
UNBINDEVENTS(hWnd [, nMessage])

Параметры

oEventSource

указывает источник события, который должен быть полноценным действительным объектом Visual FoxPro.

oEventObject

указывает объектную ссылку, которая может быть использована, как источник события или обработчик события.

cEvent

указывает имя события, метода или свойства, которое вы желаете отсоединить.

oEventHandler

указывает объект, который обслуживает событие.

cDelegate

указывает уполномоченный метод (метод-делегат), обрабатывающий событие для oEventHandler.

hWnd

указывает целочисленное значение дескриптора окна, для которого отсоединяется событие.

Если hWnd передано значение 0, отсоединяются все дескрирторы окон.

Если параметр nMessage parameter не включе в состав команды, то тогда происходит отсоединение всех привязок Windows message bindings для окна с дескриптором hWnd.

nMessage

Указывает действительное сообщение Windows message (Win Msg), привязку к которому нужно высвободить.

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

Численный тип данных. UNBINDEVENTS() возвращает число событий, которые отсоединены, если операция отсоединения прошла успешно. UNBINDEVENTS() возвращает значение 0, если не имеется событий, которые необходимо отсоединить. Visual FoxPro генерирует ошибку, в случае если UNBINDEVENTS() не в состоянии отсоединить событие, которое доступно для этой операции.

Expand imageПримечания

В приведенной ниже таблице описываются способы использования UNBINDEVENTS( ).

Синтаксис Действие

UNBINDEVENTS(oEventSource, cEvent, oEventHandler, cDelegate)

Отсоединяет указанное событие от обработчика событий.

UNBINDEVENTS(oEventObject)

Отсоединяет все события, ассоциированные с этим объектом. Это включает события, которые привязаны к нему, как источнику события и его методы-делегаты, которые подавались,  как обработчики события.

UNBINDEVENTS(hWnd [, nMessage])

Отсоединяет все или конкретные события Windows Message (Win Msg).

Если произошло событие, а метод UNBINDEVENTS() вызван или вызван метод-делегат, обрабатывающий событие, событие и метод-делегат завершатся до того, как функция UNBINDEVENTS( ) отсоединит событие.

Вы можете вызвать функцию AEVENTS() для извлечения информации обо всех событиях и методах-делегатах, присоединенных к конкретному объекту.

Expand imageПример

В приведенном примере показано, как откатить назад вызов , который поддерживает позиционирование с правой стороны рабочего стола Visual FoxPro, в независимости от того, каким способ изменяются размеры рабочего стола. UNBINDEVENTS() отсоединяет событие системной переменной _SCREEN от объекта oHandler:

  CopyCode imageСкопировать код
PUBLIC oHandler
oHandler=NEWOBJECT("myhandler")
DO (_browser)
BINDEVENT(_SCREEN,"Resize",oHandler,"myresize")
UNBINDEVENTS(_SCREEN,"Resize",oHandler,"myresize")

DEFINE CLASS myhandler AS Session
   PROCEDURE myresize
   _obrowser.left = _SCREEN.Width - _obrowser.width
   RETURN
ENDDEFINE

Expand imageСмотрите также