![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
December |
|
|||
![]() Antitheorist ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4423 Регистрация: 14.8.2002 Где: Харьков Репутация: 8 Всего: 57 |
Greetings All!
Есть какой-то объект, наследник от TObject. Простой, но с кучей свойств. Эти свойства могут хаотично изменяться в куче мест. Есть задача - отследить, когда объект изменился (то есть хотя бы одно свойство) и отреагировать. Хочется сделать это наиболее элегантно, с минимальными затратами в кодописании и минимальными усилиями по поддержке системы отслеживания в будущем, когда будут добавляться новые свойства. Программа минимум - прикрутить фнкцию IsModified, идеальный вариант - встроить какой-нить event ObjectModified. У кого какие есть предложения на эту тему? Может, кто-нить знает какой-нить интерфейс, от которого удобно унаследоваться для выполнения этой задачи? |
|||
|
||||
Демо |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 30 Всего: 50 |
Один из вариантов:
-------------------- |
||||
|
|||||
December |
|
|||
![]() Antitheorist ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4423 Регистрация: 14.8.2002 Где: Харьков Репутация: 8 Всего: 57 |
Демо, это очень трудоёмкий вариант. У меня в каждом классе около 50 свойств, классов - 3 штуки. Каждый вот так перелопачивать - это долго
![]() |
|||
|
||||
Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 72 Всего: 111 |
И всё таки навреное это самый простой способ да к тому же более гибкий. Так что смотри код Yanis'а и код Демо.
http://forum.vingrad.ru/index.php?showtopic=91976 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |