Form.InvokeEventAsync

From SunFlurry wiki
Jump to: navigation, search
  InvokeEventAsync (Вызов визуального события)
Объект:Форма
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Нет
Исключения:Форма не визуальная или не загружена, невозможно превратить в строку, неверные параметры
Визуальность:Да

Функция инициирует выполнение указанного визуального события привязанного либо к визуальному элементу формы (если оный адресуется объектом, к примеру OnInitLine), либо к самой форме (к примеру OnOpen). Разработчик должен указать все переменные, участвующие в событие и задать их значения. Если какая-то из переменных не будет указана, при обращении к ней в момент выполнения события будет вызвано исключение. Событие выполняется в асинхронном режиме (т.е. может быть выполнено только в момент, когда программа ожидает действий пользователя), управление будет возвращено до того, как начнется выполнение события. В отличии от InvokeEvent, данное событие можно использовать чтобы превратить прерывающий вызов (к примеру, OnEnter) или предопределенное событие (к примеру, OnOpen) в асинхронное событие, как будто была нажата кнопка, это дает возможность освободить графический интерфейс, который ожидает окончания прерывающего события. К примеру, если в событии OnOpen вызвать событие формирования отчета с помощью InvokeEventAsync, во время формирования отчета клиент будет работать в обычном режиме, а не "зависнет" в ожидании вывода отчета, как это было бы, если бы из OnOpen вызвать функцию формирования отчета напрямую. Функция применяется к загруженной визуальной форме или ее элементу. Ниже дан краткий список возможных событий (описания и необходимый набор переменных см. в статье Визуальные события):

  • События, применяемые к форме: OnOpen, OnClose, OnTimer, OnSaveRequest, OnStatusChange, OnTaskbarMenuClick, OnMessage, OnSaveSettings, OnLoadSettings, OnAfterLoadSettings
  • События, применяемые к визуальным элементам формы: OnGetCaption, OnClick, OnDoubleClick, OnRightClick, OnKeyPress, OnChangeOrClick, OnBeforeChange, OnAfterChange, OnBeforeEditLine, OnAfterEditLine, OnBeforeEditCell, OnAfterEditCell, OnBeforeEdit, OnAfterEdit, OnGetLine, OnGetVisualProperties, OnGetCellVisualProperties, OnGetFormNameForOperation, OnChecking, OnMoveToFolder, OnSaveLoadObject, OnSelectionChange, OnAttachedButtons, OnBeforeResize, OnAfterResize, OnEnter, OnExit, OnInitLine, OnShowLine, OnBeforeSelect, OnGetRightClickMenu, OnBeforeEditObject, OnInitCombobox, OnInitLeaf, OnBeforeLoadElements, OnAfterNewElementCreated, OnBeforeElementSaved, OnAfterElementSaved, OnBeforeRefresh, OnAfterFilterChange, OnAfterSorting


Синтаксис

Form.InvokeEventAsync(<Имя события (STRING)>,<Имена переменных, передаваемых событию, через запятые (STRING)>,<Значение переменной 1>,<Значение переменной 2>...)

Аргументы

  • <Имя события (STRING)> - Задает наименование события, исполнение которого нужно инициировать. Регистр наименования не имеет значения.
  • <Имена переменных, передаваемых событию, через запятые (STRING)> - Задает наименования переменных, значения котороых будут переданы в вызываемое событие. Переменные задаются через запятую. Регистр написания наименований не имеет значения.
  • <Значение переменной 1>, <Значение переменной 2>... - (необязательный аргумент) Задает аргументы, значениями которых будут заполнены переменные при вызове события.

Примеры

//Вызов асинхронного события, нажатия на кнопку формирования отчета из визуального события OnOpen
Form.bExecute.InvokeEventAsync("OnClick");