Порядок обработки событий
Все элементы управления (за исключением статических) – как элементы на форме, так и сами формы или группы элементов – поддерживают обработку команд вызовов всплывающего меню. Элементы управления могут размещаться непосредственно на форме, на закладке многостраничной формы или в группе (группой называется диалог или бланк, размещаемый на другом диалоге или бланке). При этом команда или вызов меню могут быть обработаны как собственным обработчиком элемента, так и обработчиком более высокого уровня (обработчиком группы или формы, которой этот элемент принадлежит). Рассмотрим подробнее правила обработки команд и всплывающего меню.
Обработка команд
Обработка команды происходит в последовательности обработчик элемента → обработчик группы → обработчик формы. То есть сначала вызывается обработчик элемента. Если обработчик не задан или вернул НЕТ – вызывается обработчик группы (разумеется, в случае, если элемент принадлежит группе). Затем, если обработчик группы не задан или вернул НЕТ – управление передается форме. При этом отсутствие обработчика для группы и случай, когда обработчик вернул НЕТ – это не одна и та же ситуация, поскольку в результате выполнения обработчика могут произойти какие-то действия с группой.
Обработка вызова меню
Обработка вызова всплывающего меню происходит в той же последовательности, что и обработка команды (обработчик элемента → обработчик группы → обработчик формы). Но отличие состоит в том, что передача управления происходит до первого найденного обработчика, независимо от того, какое значение он вернул. То есть если обработчик для элемента не задан – выполняется обработчик группы. Но если обработчик элемента вернул НЕТ – это означает, что показ всплывающего меню для элемента запрещен, и никакой обработчик группы или формы не сможет вызвать для этого элемента всплывающее меню.
Обработка команд и меню для элементов, принадлежащих закладке
Обработка событий для элементов многостраничной формы имеет некоторые отличительные особенности. В качестве страницы элемента ЗАКЛАДКИ может выступать либо отдельный элемент управления, либо группа (см. описание типа ЗАКЛАДКИ). Все возникающие события выполняются для текущей активной страницы. Управление от элемента сначала передается не типу ЗАКЛАДКИ, а текущей активной странице. Вызов обработчиков происходит в следующей последовательности: обработчик элемента → обработчик группы (то есть страницы) → обработчик самого типа ЗАКЛАДКИ → обработчик формы.
Передача обработчиков меню происходит в той же последовательности (и правила обработки вызова меню такие же, как и для других элементов). При этом при клике правой кнопкой мыши в пустой области страницы вызывается обработчик меню этой страницы.