![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как правильно вызвать RegisterPropertyEditor ?
Juice © (2005-08-04 13:50:00)Вот такой код:
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:00) [1]Ответ найден, спасибо Юрию Зотову :)