Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.009 c
8-65557
Mr.ElectroNick
2003-06-14 10:19
2003.10.20
Изменение размера компоненты (от TImage) в RunTime


14-65636
LeNa19
2003-09-16 22:03
2003.10.20
прокси для локальной сети


3-65321
uu
2003-09-30 11:08
2003.10.20
SelectedRows


1-65422
Nika
2003-10-03 21:27
2003.10.20
Запрет на Backspace


1-65538
TUser
2003-10-08 09:36
2003.10.20
header




   Наверх