C++Builder
Начало
Форум
Помощь
Войти
Регистрация
C++Builder
>
Forum
>
Вопросы программирования
>
Общие вопросы программирования в C++Builder
>
Перекрыть property
Страниц: [
1
]
Вниз
Печать
Автор
Тема: Перекрыть property (Прочитано 1526 раз)
POV
Участник
Сказали спасибо: +107/-7
Offline
Сообщений: 640
Перекрыть property
«
:
08 Ноябрь 2015, 17:39:02 »
Наследую класс от TImage. Хочу свои кодом перехватить задание
Visible
Enabled.
Как-то оно так делается?
«
Последнее редактирование: 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
Re: Перекрыть property
«
Ответ #8 :
10 Ноябрь 2015, 07:54:22 »
Ок, в обед проверю.
Записан
Страниц: [
1
]
Вверх
Печать
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Вопросы программирования
-----------------------------
=> Общие вопросы программирования в C++Builder
=> Программирование с FMX
=> Работа с базами данных в C++Builder
=> Windows API
=> Технологии COM/DCOM, ActiveX
=> Аспекты и идеология профессиональной разработки ПО
=> Компьютерное железо и системное администрирование
=> студенческий городок
-----------------------------
Обсуждение материалов на сайте
-----------------------------
=> Обсуждений статей на сайте
=> Обсуждение материалов из файлового архива
=> Компоненты сторонних разработчиков к С++Builder
-----------------------------
Работа сайта и новости
-----------------------------
=> Ищу/предлагаю работу
=> Новости из мира программирования
=> Новости - события календаря
=> Голосования
=> Компьютерный юмор и приколы
=> Работа сайта
=> Флейм
-----------------------------
FAQ - частозадаваемые вопросы/ответы
-----------------------------
=> FAQ, общие вопросы, посвящённые C++Builder
=> FAQ, вопросы по базам данных
=> FAQ, вопросы по компонентам
Загружается...