Вниз
Скачать: CL | DM;

Как правильно вызвать RegisterPropertyEditor ?   Найти похожие ветки 

← →
Juice ©   (2005-08-04 13:50) [0]

Вот такой код:

TSrcTableItem = class (TCollectionItem)
 private
   FSrcTable : TComponent;
 published
   property SourceTable: TComponent read FSrcTable write FSrcTable;
 end;

 TAutoPump = class(TComponent)
 private
   FSrcTablesOrder : TOwnedCollection;
 ...
 published
   property SrcTablesOrder : TOwnedCollection read FSrcTablesOrder write FSrcTablesOrder;
 end;

 ...

constructor TAutoPump.Create(AOwner : TComponent);
begin
 inherited Create(AOwner);
 FSrcTablesOrder := TOwnedCollection.Create(Self, TSrcTableItem);
...


Все типа как ОК, коллекция добавлена в комопонент, однако я хочу чтобы в нее могли в Design-time попасть не все компоненты ,а только определенного класса. Для этоо написал property editor :

TSrcTablesProperty = class(TComponentProperty)
 public
   procedure Edit; override;
 end;

Не получается его зарегистрировать, точнее регистрация проходит без ошибок но мой editor не выполняется.
Сначала сделал так:
RegisterPropertyEditor(TypeInfo(TComponent), TAutoPump, "SrcTablesOrder",
                        TSrcTablesProperty);
Потом попробовал так:
RegisterPropertyEditor(TypeInfo(TComponent), TAutoPump, "",
                        TSrcTablesProperty);
И только когда зарегистрировал так все заработало:
RegisterPropertyEditor(TypeInfo(TComponent), nil, "",
                        TSrcTablesProperty);
Но конечно такое счастье никому не надо. Что указывать во втором и третьем параметре ?


← →
juice ©   (2005-08-04 15:34) [1]

Ответ найден, спасибо Юрию Зотову :)



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

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



Память: 0.45 MB
Время: 0.033 c
2-1136402904
aleccc
2006-01-04 22:28
2006.01.22
Работа с массивами компонентов


10-1105900741
kostik78ua
2005-01-16 21:39
2006.01.22
Параметры в запросе


2-1136405133
lex85
2006-01-04 23:05
2006.01.22
закладки


1-1135067057
Stanislav
2005-12-20 11:24
2006.01.22
Перемещение объекта в TScrollBox


14-1136038965
SPeller
2005-12-31 17:22
2006.01.22
Принимайте эстафету! :)




   Наверх