Основы офисного программирования и язык VBA

       

Реальные объекты и инициирование событий


Остался заключительный штрих в завершение разговора о том, как создаются классы и как ведется работа с объектами, реагирующими на события. Нужно еще рассказать о создании реальных объектов, двойники которых описаны в специальном модуле класса, в нашем примере - в классе Личности. Эти реальные объекты, обычно, находятся в стандартном модуле. В какой -то момент своей жизни, как правило, в самом начале появления, они связываются с двойниками и после этого могут реагировать на события. События инициируются в процессе работы с этими объектами, при вызове некоторых из их методов. Какие из методов класса зажигают события, - этот вопрос решается при проектировании класса, а в какой момент метод будет вызываться, - это прерогатива пользователя, работающего с объектами.

Для класса Личность мы уже описали методы, зажигающие события. Поэтому нам осталось только привести описание стандартного модуля Примеры, в котором ведется работа с двумя объектами, названными FriendOne и FriendTwo:

Пример 4.7.

(html, txt)

В этом модуле объявлены два объекта класса Личность и один объект класса Личности. Две процедуры - Знакомство и CallEvents вызываются в ответ на щелчки командных кнопок в соответствующих обработчиках событий. Первой должна вызываться процедура Знакомство, где объекты FriendOne и FriendTwo получают "нормальные" значения и происходит Знакомство с ними. Важно, что здесь же происходит связывание этих объектов с их двойниками. Обратите внимание, нам понадобился объект FOne класса Личности, чтобы вызвать его метод Connect и связать эти пары объектов. В процессе работы этих модулей будет вестись диалог с пользователем. На следующих рисунках показаны сообщения, выдаваемые обработчиками событий ИзменениеФамилии и ДеньРождения.


Рис. 4.6.  Обработчик события ИзменениеФамилии объекта One


Рис. 4.7.  Обработчик события ИзменениеФамилии объекта Two


Рис. 4.8.  Обработчик события ДеньРождения объекта Two

Приведем еще результаты отладочной печати:

Станислав Федотов родился 21.05.39 Катя Павлова родилась 22.03.79 22.03.79 - 22.03.99 13:14:01 Станислав Федотов родился 21.05.39 Катя Волконская родилась 22.03.79


Пример 4.7.

В этом модуле объявлены два объекта класса Личность и один объект класса Личности. Две процедуры - Знакомство и CallEvents вызываются в ответ на щелчки командных кнопок в соответствующих обработчиках событий. Первой должна вызываться процедура Знакомство, где объекты FriendOne и FriendTwo получают "нормальные" значения и происходит Знакомство с ними. Важно, что здесь же происходит связывание этих объектов с их двойниками. Обратите внимание, нам понадобился объект FOne класса Личности, чтобы вызвать его метод Connect и связать эти пары объектов. В процессе работы этих модулей будет вестись диалог с пользователем. На следующих рисунках показаны сообщения, выдаваемые обработчиками событий ИзменениеФамилии и ДеньРождения.


Рис. 4.6.  Обработчик события ИзменениеФамилии объекта One


Рис. 4.7.  Обработчик события ИзменениеФамилии объекта Two


Рис. 4.8.  Обработчик события ДеньРождения объекта Two

Приведем еще результаты отладочной печати:

Станислав Федотов родился 21.05.39 Катя Павлова родилась 22.03.79 22.03.79 - 22.03.99 13:14:01 Станислав Федотов родился 21.05.39 Катя Волконская родилась 22.03.79


Содержание раздела