Вы можете использовать RAISEEVENT( ) для срабатывания, или вызывания события из пользовательского метода. Хотя RAISEEVENT( ) применяется прежде всего к методам пользователя, Вы можете использовать её для того, чтобы вызвать родные события и методы.
RAISEEVENT( oEventSource, cEvent [, eParm1...] ) |
Параметры
- oEventSource
- Определяет источник события, который должен быть допустимым объектом Visual FoxPro.
- cEvent
- Определяет имя события, метода, или свойства, которое Вы хотите вызвать.
- eParm1...
- Определяет один или более параметров, чтобы их передать, если метод имеет параметры.
Возвращаемое значение
Логический тип данных. RAISEEVENT( ) всегда возвращает Истину (.T)..
Замечания
Visual FoxPro автоматически вызывает события для методов пользователя, которые являются связанными с объектами через BINDEVENT( ) , если методы называются напрямую. Например, следующий код не вызовет событие:
Скопировать код | |
---|---|
oForm.GetMyData(cData) |
Вместо этого, чтобы вызвать событие для пользовательсткого метода, Вы должны сделать следующий запрос:
Скопировать код | |
---|---|
RAISEEVENT( oForm, "GetMyData", cData ) |
Вы можете также изменить это поведение, используя BINDEVENT( ) с nFlags установленным в 2 или 3.
Событие, которое Вы желаете вызвать, должно быть помечено Public , а не Hidden или Protected .
Если Вы используете RAISEEVENT( ) для свойства, Visual FoxPro устанавливает свойство в собственное значение. Следующий пример устанавливает свойство Caption для _SCREEN в текущее значение для Caption :
Скопировать код | |
---|---|
RAISEEVENT( _SCREEN, "Caption" ) |
Вызов события не происходит, если Вы привязываетесь к событию, например, используя BINDEVENT( ) , котрое имеет параметры передаваемые по ссылке.
Visual FoxPro игнорирует рекурсивные вызовы RAISEEVENT( ) к событию, изнутри того же самого вызванного события.
Пример
Активизация формы или использования Form1.Show
вызывает событие Activate для формы. Однако, вызывая событие Activate непосредственно через запрос типа Form1.Activate,
не вызывает события Activate . Следующий пример показывает, как Вы можете использовать RAISEEVENT( ) для вызова события Activate :
Скопировать код | |
---|---|
RAISEEVENT( Form1, "Activate" ) |
См. Также
Другие Ресурсы
ФункцииСвязывание событий для Объектов Visual FoxPro
BINDEVENT( ) Функция
UNBINDEVENTS( ) Функция
AEVENTS( ) Функция