Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.118.0.240] |
|
Сообщ.
#1
,
|
|
|
У меня следующий вопрос:
1) Имеется компонент, который является производным от TComponent, назовем его TModule 2) Имеется компонент TSignal, одним из полей которого, является TModule. Это поле доступно через свойство в разделе published TModule = class(TComponent) ... end; TSignal = class(TCustomLabel) private FModule:TModule; procedure SetModule(Val:TModule); published property Module:TModule read FModule write SetModule; end; Во время дизайна, если я хочу назначить экземпляру класса TSignal свойство Module, среда IDE предлагает список доступных объектов класса TModule в виде ComboBox. В этом списке отражены свойства Name соответствующих объектов. А можно ли сделать так, чтобы при составлении этого списка использовалось не свойство Name, а какое-либо другое??? |
Сообщ.
#2
,
|
|
|
Надо создать и зарегистрировать редактор свойств для типа TModule.
А этот редактор уже сам будет заполнять выпадающий список. |
Сообщ.
#3
,
|
|
|
наследуй свой редактор от TComponentProperty(модуль DesignEditors) и перекрой в нем метод GetValues
Обрати внимание на методы IDesigner60.GetComponentNames и IDesigner60.GetComponent Добавлено а. Ну да, еще те нужно будет перекрыть GetValue и SetValue |