Как уже сообщалось выше, один и тот же редактор свойств можно “привязать” к свойствам, в зависимости от их названия или типа объекта. Это определяется параметрами (второй и третий), которые передаются во время регистрации в процедуре RegisterPropertyEditor. Возможны четыре варианта:
Класс компоненты |
Имя свойства |
Для каких свойств |
Nil |
‘’ |
совпадает тип свойства |
Nil |
‘Name’ |
Тип свойства + Имя свойства |
TClass |
‘’ |
Тип свойства + класс компоненты |
TClass |
‘Name’ |
Тип свойства + Имя свойства+ класс компоненты |
Пояснение к таблице. Если вы зарегистрировали Редактор и указали как класс компоненты, так и имя свойства, то данный редактор “привязывается” ко всем свойствам, которые:
имеют тип, указанный в первом параметре процедуры;
принадлежат компоненте, которая относится к классу (или его потомкам), указанному во втором параметре;
имеют имя, совпадающее с указанным в третьем параметре;
Если вместо типа класса в процедуре регистрации стоит Nil, а вместо имени свойства - пустая строка ‘’, то данный редактор “привязывается” ко всем свойствам, которые имеют тип, указанный в первом параметре, независимо от их имени или принадлежности к объекту какого-либо класса.
Если указан только класс, то редактор относится ко всем свойствам указанного типа для объектов указанного класса.
Если указано только имя, то редактор относится к свойствам указанного типа, которые имеют указанное имя.
В нашем случае Редактор Свойств зарегистрирован для всех свойств, которые имеют тип String, относятся к компоненте класса TControl или наследника от него и имеют имя ‘Hint’.