Форум: "Основная";
Текущий архив: 2003.10.20;
Скачать: [xml.tar.bz2];
ВнизРедактор свойств Найти похожие ветки
← →
oleg_art (2003-10-07 17:53) [0]Всем привет !
Как зарегистрировать свой редактор свойств для ВСЕХ published свойств типа множество ?
← →
Skier (2003-10-07 17:53) [1]Никак
← →
oleg_art (2003-10-07 18:02) [2]To Skier
Но ведь Borland поставляет же TSetProperty, который зарегистрирован для всех множеств. Вопрос только в том, как они это сделали ?
← →
Skier (2003-10-07 18:03) [3]
> Вопрос только в том, как они это сделали ?
Вот и мне интересно...
← →
Юрий Зотов (2003-10-07 18:14) [4]Вообще говоря, множественная регистрация делается так:
RegisterPropertyEditor(???, nil, "", TMySetPropery);
Вот только что ставить первым параметром, я в данном случае сказать затрудняюсь. Если бы речь шла о конкретном типе множества - проблем никаких: TypeInfo(TMySet) и редактор регистрируется для всех свойств типа TMySet, независимо от их имен и от содержащих их классов. А вот как для ВСЕХ множеств разом - не знаю. Поэтому я бы решал задачу другим путем.
Посмотрите RegisterPropertyMapper в DesignIntf (или в DsgnIntf). Проверяем PropInfo и если это множество, то возвращаем класс своего редактора, иначе возвращаем nil (то есть, оставляем прежний класс). Все очень просто.
← →
Skier (2003-10-07 18:32) [5]>Юрий Зотов © (07.10.03 18:14) [4]
А этот вариант подойдёт для всех множеств, т.е. будет работать
и с VCL ?
← →
oleg_art (2003-10-07 18:53) [6]To Юрий Зотов:
Браво !
← →
Юрий Зотов (2003-10-07 19:12) [7]> Skier © (07.10.03 18:32) [5]
Естественно. Этот способ сработает вообще для любых свойств любых типов. Проверяем PropInfo и какой класс редактора для данного объекта и данного свойства вернем - такой и будет работать. Это же просто подмена редактора (но совершенно легальная, предусмотренная разработчиками VCL).
> oleg_art © (07.10.03 18:53) [6]
Спасибо, но "браво", конечно, не мне, а разработчикам VCL, мудро предусмотревшим такой механизм. А также разработчикам Dream Controls, которые когда-то тоже мне его подсказали. :о)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.10.20;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c