|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Компонент с изменяющимся в инспекторе полем-компонентом
В компонентах DevExpressVCL есть замечательная особенность - колонка TcxGridColumn в TcxGridTableView имеет свойство с именем "Properties", которое раскрывается как список возможных TcxCustomEditProperties, напимер, DateEdit, CalcEdit, Label и т.д. При этом в инспекторе подставляется соответвующий наследник от TcxCustomEditProperties со свойствами специфическими для выбранного из выпадающего списка.
Я понимаю, что для реализации такого же в своих компонентах нужно использовать RegisterPropertyEditor, но пока все попытки оказались безуспешными. Копание в исходниках DevExpressVCL не помогло - выделить оттуда суть не получилось. Документация и поиск - понимания не добавило. Может быть есть у кого примерчик или ссылка на суть реализации? |
#2
|
||||
|
||||
А вы не замечали сходного поведения у свойства DataSet в компонете DataSource? Оно тоже может быть и TAdoTable и TAdoQuery и TClientDataset и много чем еще. Ни на какие мысли не наводит?
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#3
|
|||
|
|||
Да, все правильно. Когда свойству присваивается внешний компонент - проблем нет. Так TAdoTable и TAdoQuery и TClientDataset являются потомками TDataSet и без проблем могут быть присвоены этому свойству.
Речь идет о пересоздании свойства внутри самого компонента. Свойство имеет тип, например, TCustom... Перечень возможных значений этого свойства определяется из выпадающего списка. После выбора создается один из предопределенных потомков от TCustom... и присваивается свойству. |