Закономерность вполне логичная:
1) При открытии формы первым вызывается триггер OnOpenForm()
2) При закрытии формы сначала вызывается OnQueryCloseForm(), а после OnCloseForm()
При открытии формы происходят несколько многопоточных операций:
- получение формой фокуса
- поиск и выборка записей из источника
Триггеры этих операций при открытии формы могут вызываться вперемешку, например, OnActivateForm() может отработать до OnFindRecord(), а может после. Все зависит от сложности формы.
Операция получения фокуса: триггер OnActivateForm(), потеря фокуса - OnDeactivateForm(). Обычно при закрытии формы последовательность триггеров такая: OnDeactivateForm(), OnQueryCloseForm(), OnCloseForm().
Теперь про триггеры выборки записи:
Алгоритм выборки и заполнения таблицы работет по вот такой схеме
FIND;
REPEAT
GETRECORD;
GETCURRRECORD только для выбранной записиl
UNTIL NEXT = 0;
FIND - OnFindRecord()
GETRECORD - OnAfterGetRecord()
GETCURRRECORD - OnAfterGetCurrRecord()
NEXT - OnNextRecord();
|