Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Слежка за "объектом", как проследить за компонентом 
:(
    Опции темы
Budy
Дата 28.8.2006, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 616
Регистрация: 6.2.2004
Где: Екатеринбург

Репутация: 1
Всего: 2



:Приветствую
Создаю компонент X, который будет следить за указанным компонентом Y типа TControl (TControl - родитель всяких кнопок, едитов, чекбуттонов, мемов и тп).
Компонент X знает лишь имя компонента Y (или привязку типа TControl) и должен отлавливать все его изменения - размер и позицию (хотя бы):
TControl(Y).Left, TControl(Y).Top, TControl(Y).Width, TControl(Y).Height
Таймер ставить не очень выгодно - прога пишется под слабую тачку, и таких связок X:Y около тридцати.
Дак вот как можно отловить изменения другим способом?
Заранее благодарю.


--------------------
Как ты назовешь свой корабль, так на нем и напишут
user posted image
PM MAIL WWW ICQ   Вверх
Alexeis
Дата 28.8.2006, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



Budy, ну с TWincontrol, еще можно выкрутится сделав локальный перехват, а с TControl, придется делать наследников, которые сами будут сообщать шпиёну X, че они делают. Например в конструкторе передавать указатель на X. При этотом придется перекрыть родные функции типа SetTop и то это будет работать либо если функции виртуальные или если внутри объекта нет прямых (в обход этой функции) обращений на запись полей данных. Анологично непоможет перехват если изменеия будут производится напрямую. Но это плохая практика, а потому, вероятно таких обращений быть не должно. Вообще это плохо согласуется с объектной моделью программирования (инкапсуляцией). Объект должен сам сообщать о тех изменениях которые он считает нужным сообщать, но никто из вне не должет знать о его внутреннем состоянии т.е. лезть в него и добывать из него инфу.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
DemoCode
Дата 28.8.2006, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 890
Регистрация: 20.10.2005
Где: Россия

Репутация: 2
Всего: 41



Budy, а с какой целью это нужно (может можно решить задачу другим путём) ?


--------------------
Жить стало лучше, жить стало веселей
© И.В. Сталин 
PM MAIL ICQ   Вверх
kostas
Дата 28.8.2006, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 21.7.2006

Репутация: 3
Всего: 4



мне кажется все таки оптимальным будет таймер..
PM ICQ   Вверх
Budy
Дата 28.8.2006, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 616
Регистрация: 6.2.2004
Где: Екатеринбург

Репутация: 1
Всего: 2



kostas, пожалуй ты прав, надо будет собрать тачку помощнее.

DemoCode, не думаю

Всем спасибо


--------------------
Как ты назовешь свой корабль, так на нем и напишут
user posted image
PM MAIL WWW ICQ   Вверх
kostas
Дата 29.8.2006, 07:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 21.7.2006

Репутация: 3
Всего: 4



да врятли так много ресурсов то уж потребуется.... думаю и слабой тачки вполне должно хватить
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0475 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.