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

Вниз

Для чего используется функция RegisterPropertyMapper   Найти похожие ветки 

 
Priest   (2005-05-24 14:38) [0]

Нашён в исходниках Дельфи.....


 
malkolinge ©   (2005-05-24 18:38) [1]

Редактор свойств кажется для множеств


 
Юрий Зотов ©   (2005-05-24 20:42) [2]

> malkolinge ©   (24.05.05 18:38) [1]

Жень, ну елы-палы... :о)

> Priest

Есть свойство типа TA. Как зарегистрировать его редактор TAProperty для всех классов и независимо от фактического имени свойства? Элементарно, скажете Вы - и будете правы:
RegisterPropertyEditor(TypeInfo(TA), nil, "", TAProperty);

ОК, усложняем задачу. Есть свойства типов TA, TB, TC... и еще 200 штук. Все они используют один и тот же редактор. Как зарегистрировать этот редактор для всех этих свойств, всех классов и независимо от фактического имени свойства?

Ответ - написать приведенную выше строку 203 раза, меняя только параметр TypeInfo. Можно? Можно. Но некрасиво как-то, согласитесь. А если таких свойств не 203, а 203 тысячи? Что, так и писать одно и то же 203 тысячи раз?

Вот для подобных вещей и служит RegisterPropertyMapper. Например, она позволяет нам сделать свой редактор всех событий и буквально несколькими строками кода зарегистрировать его для всех событий всех классов.

Когда меняется Selection дизайнера, среда обновляет Object Inspector. При этом идет проход по всем отображаемым в нем свойствам и для каждого из них создается экзмпляр редактора. И, создавая каждый редактор, IDE смотрит, зарегистрирована ли для данного свойства callback-функция типа TPropertyMapperFunc (вот эту регистрацию и делает RegisterPropertyMapper). Если да - то она вызывается и создается экземпляр редактора того класса, который она вернула (конечно, при условии, что для данного свойства не зарегистрирован персональный редактор - иначе создается именно он).



Страницы: 1 вся ветка

Текущий архив: 2005.12.18;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.028 c
6-1125862548
Alpine
2005-09-04 23:35
2005.12.18
Как сохранить страницу загруженную в WebBrowser ?


14-1133123063
Gero
2005-11-27 23:24
2005.12.18
Минестерство Российской Федерации


8-1121170462
nstur
2005-07-12 16:14
2005.12.18
Выполнить Stretch jpg файла


2-1133600599
coral
2005-12-03 12:03
2005.12.18
Помогите плиз срочно!


14-1132779127
ArtemESC
2005-11-23 23:52
2005.12.18
Колонки неработают...