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