Access 2002

Перехват событий в формах


Мы включили в демонстрационную базу данных еще один пример перехвата событий внешнего приложения. На этот раз дело происходит не в модуле пользовательского класса VBA, а в модуле формы, frmWithEventsWatchForm. При открытии этой формы создается новый экземпляр класса Appl ication Microsoft Word, и каждое событие этого класса записывается в журнал — текстовое поле. На  10.34 показан пример отслеживания в этой форме процесса переключения между документами в Word.

Код этой формы практически идентичен коду, который мы обсуждали в предыдущем разделе, с той разницей, что нам не нужна отдельная переменная для хранения экземпляра класса. Поскольку при открытии формы экземпляр модуля ее класса создается автоматически, этот шаг ни к чему.

Обработчики событий, создаваемые с помощью ключевого слова WithEvents, — это просто функции, которые автоматизируемый компонент вызывает в ответ на свои события. Как и в случае с любой другой функцией, компонент не может продолжать работу до тех пор, пока не завершится вызванный им обработчик события. Так что старайтесь, чтобы ничто не могло помешать завершению ваших процедур или вызвать задержку в их работе.

Резюме

В этой главе мы изучили основные особенности механизма автоматизации, включая:

О роль клиентов и серверов автоматизации, назначение библиотек типов и создание объектов других приложений;

О сходство между кодом автоматизации и обычным VBA-кодом, управляющим объектами Access;

О управление другими приложениями через их объекты, свойства, методы и события.

Все описанное мы продемонстрировали на простых примерах, показавших вам, как управлять другими приложениями Microsoft Office, создавая на их основе мощные интегрированные решения.

Комментарии закрыты