ник: Lukas
Кратко:
1. Генерировать события могут только объекты (экземпляры классов).
Как это делать - есть в примерах.
2. Слушать события других объектов могут только объекты.
Почему собственно нам пришлось в третьем примере переместится в модуль формы.
(Экземпляр формы есть экземпляр класса).
3. По одному описанию класса (модулю класса) можно создать много объектов.
Не зря же я добавил кнопку на форму - "Новый экземпляр класса формы".
Есть еще много чего, но пока не вкурены первые 3 пункта, об этом рано говорить.
Где это применить:
1 и 2: В том же примере с масштабированием шкалы времени, экземпляр класса clsDate генерирует событие
"AfterUpdate", а в описании формы есть подписка на это событие. В результате, когда мы вызываем
методы класса clsDate (AddDay и др.), форма отлавливает это событие и меняет себе источник строк.
3. Например нам необходимо открыть формы-карточки для нескольких записей таблицы. Мы можем:
а. Сохранить несколько одинаковых форм-карточек с разными именами и открывать их для каждой
необходимой записи. Недостатки: много однотипных форм, если придется что-то подправить,
придется править во всех, либо удалять все кроме одной, править ее, потом опять делать копии.
(компилятор с ума сойдет). Мы можем одновременно смотреть столько записей, сколько копий форм заготовили.
б. Создавать новые экземпляры класса единственной формы-карточки и работать с таким количеством записей,
которое нам необходимо. Если нужно будет что-то подправить - править только в одном описании формы.
Где применяются классы в принципе - везде!
Все что видим на экране: главное окно ACCESS, окно базы данных, все формы, все контролы, все отчеты, все таблицы и т.д.,
все окна конструкторов, все окна свойств, окно редактора VBA и прочее и прочее - все это экземпляры классов.
И даже то, что мы не видим, например рекордсеты - тоже экземпляры классов.