Difference between revisions of "Form.InvokeEvent"
m (1 revision imported) |
|
(No difference)
|
Latest revision as of 07:50, 7 February 2021
InvokeEvent (Вызов визуального события) | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Функция инициирует выполнение указанного визуального события привязанного либо к визуальному элементу формы (если оный адресуется объектом, к примеру OnInitLine), либо к самой форме (к примеру OnOpen). Разработчик должен указать все переменные, участвующие в событие и задать их значения. Если какая-то из переменных не будет указана, при обращении к ней в момент выполнения события будет вызвано исключение. Событие выполняется в синхронном режиме (т.е. является прерывающим событием), управление не будет возвращено до тех пор, пока не закончится выполнение события. Изменения в переменных внутри события будут транслированы на переменные, переданные в виде аргументов события в момент окончания выполнения события. Некоторые события (к примеру, 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.InvokeEvent(<Имя события (STRING)>,<Имена переменных, передаваемых событию, через запятые (STRING)>,<Значение переменной 1>,<Значение переменной 2>...)
Аргументы
<Имя события (STRING)>
- Задает наименование события, исполнение которого нужно инициировать. Регистр наименования не имеет значения.<Имена переменных, передаваемых событию, через запятые (STRING)>
- Задает наименования переменных, значения котороых будут переданы в вызываемое событие. Переменные задаются через запятую. Регистр написания наименований не имеет значения.<Значение переменной 1>, <Значение переменной 2>...
- (необязательный аргумент) (возможен аргумент-переменная (ByRef)) Задает аргументы, значениями которых будут заполнены переменные при вызове события. Если аргумент описывается переменной, а не выражением, после выполнения функции, значение переменной может быть обновлено, если оно было изменено внутри события.
Примеры
//Вызов события OnInitLine таблицы MainTab после программного изменения строк таблицы Form.MainTab.InvokeEvent("OnInitLine","IndexFrom,IndexTo",1,aTab.Size()); //Привязка полей к реквизитам редактируемого объекта (к примеру, в макросах), // и вызов события формы OnStatusChange для обновления общих параметров формы Form.cName.BindToProperty("Name"); Form.cCode.BindToProperty("Code"); Form.InvokeEvent("OnStatusChange"); If Form.Object.Status()<0 Then Form.cName.SetFocus(); Else Form.bPanelClose.SetFocus(); Endif;