C++Builder
  Начало   Форум   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Перекрыть property  (Прочитано 1526 раз)
POV
Участник


Сказали спасибо: +107/-7
Offline

Сообщений: 640


Перекрыть property
« : 08 Ноябрь 2015, 17:39:02 »

Наследую класс от TImage. Хочу свои кодом перехватить задание VisibleEnabled.

Как-то оно так делается?
« Последнее редактирование: 08 Ноябрь 2015, 22:35:51 от POV » Записан
volvo877
Глобальный модератор


Сказали спасибо: +736/-1
Offline

Сообщений: 891


Re: Перекрыть property
« Ответ #1 : 09 Ноябрь 2015, 09:45:12 »

Оба метода GetEnabled/SetEnabled виртуальные, можно переопределить любой из них в своем классе.
Записан
POV
Участник


Сказали спасибо: +107/-7
Offline

Сообщений: 640


Re: Перекрыть property
« Ответ #2 : 09 Ноябрь 2015, 10:05:48 »

Я совсем некорректно указал что надо.. А имеет место вот такое вот извращение (причины не стоит обсуждать):
На форму накиданы Imag'ы. Есть мой класс, объекты которого запоминают в себе указатели обработчиков этих картинок (в частности нажатия мышой), и подменяют их своими. Ну и конечно запомненные обработчики исполняют.

Вот как понять этому моему классу что картинке задали Enabled=false?
Записан
volvo877
Глобальный модератор


Сказали спасибо: +736/-1
Offline

Сообщений: 891


Re: Перекрыть property
« Ответ #3 : 09 Ноябрь 2015, 10:43:11 »

Я ж написал: перекрыть в классе-перехватчике TImage метод SetEnabled, запомнить выставляемое состояние, вызвать метод предка, и выслать классу-менеджеру каким-то образом сообщение, что состояние одного из подконтрольных ему объектов изменилось. Чего не так?
« Последнее редактирование: 09 Ноябрь 2015, 10:56:33 от volvo877 » Записан
POV
Участник


Сказали спасибо: +107/-7
Offline

Сообщений: 640


Re: Перекрыть property
« Ответ #4 : 09 Ноябрь 2015, 15:36:11 »

Так-то я изначально пробовал, не получилось. Возможно накосячил... либо советуюсь не там.
Привык что делфи и билдер одно и то же, тут все вопросы задаю вне зависимости от языка.
А сейчас на лазарусе пишу.

Вопчем, спасибо.
Записан
volvo877
Глобальный модератор


Сказали спасибо: +736/-1
Offline

Сообщений: 891


Re: Перекрыть property
« Ответ #5 : 09 Ноябрь 2015, 17:30:48 »

С Лазарусом сложнее, он не позволяет работать через Interceptor classes, в лучшем случае - через class helpers, вечером попробую набросать пример.
Записан
POV
Участник


Сказали спасибо: +107/-7
Offline

Сообщений: 640


Re: Перекрыть property
« Ответ #6 : 09 Ноябрь 2015, 18:39:09 »

Ооо, буду признателен!
Записан
volvo877
Глобальный модератор


Сказали спасибо: +736/-1
Offline

Сообщений: 891


Re: Перекрыть property
« Ответ #7 : 10 Ноябрь 2015, 01:28:41 »

Все нормально работает с перехватчиком. Вот минимальный тестовый проект:
Записан
POV
Участник


Сказали спасибо: +107/-7
Offline

Сообщений: 640


« Ответ #8 : 10 Ноябрь 2015, 07:54:22 »

Ок, в обед проверю.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  




....

Powered by SMF 1.1.21 | SMF © 2025, Simple Machines
Страница сгенерирована за 0.037 секунд. Запросов: 21.