Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.20;
Скачать: CL | DM;

Вниз

Редактор свойств   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.016 c
1-65423
asterisk
2003-10-07 19:41
2003.10.20
DLL для 1С


1-65476
Sergp
2003-10-08 13:48
2003.10.20
Как сгенерировать уникальное имя файла?


1-65446
Дмитрий
2003-10-07 15:18
2003.10.20
Стать на последний элемент в ListView


7-65645
KILLER_ABV
2003-08-04 12:28
2003.10.20
COM порты и модемы...


14-65594
Владислав
2003-09-30 21:01
2003.10.20
Matrix 2