Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как правильно вызвать 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]

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо