Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.20;
Скачать: CL | DM;

Вниз

Коллекция в коллекции...   Найти похожие ветки 

 
bk   (2004-12-15 13:20) [0]

Есть объект (компанент) полем которого является коллекция
(заполняется на этапе проектирования - с ним все нормально)
но у каждого элемента этой коллекции есть поле которое в свою очередь тоже является коллекцией (вот с ним проблема), при попытке заполнения открывается тот-же редактор элементов что и у первой коллекции, хотя объекты у коллекций разные

ЗЫ. если вопрос тупой, то попрошу не бить, а объяснить ошибку (я вообще-то понятливый)


 
Юрий Зотов ©   (2004-12-15 13:34) [1]

Покажите объявления классов и код методов GetOwner для 2-х элементов колекций и 2-х коллекций.


 
bk   (2004-12-15 13:50) [2]

{TDefParam}
 TDefParam = class(TCollectionItem)
 private
   FParam: Variant;
 public
   constructor Create(Collection: TCollection); override;
 published
   property Param: Variant read FParam write FParam;
 end;

{TDefParams}
 TDefParams = class(TCollection)
 private
   FObjMet: TMetod;
   ...
 protected
   function GetItem(Index: Integer): TDefParam;
   procedure SetItem(Index: Integer; const Value: TDefParam);
   function GetOwner: TPersistent; override;
   ...
 public
   constructor Create(lMetod: TMetod);
   property Items[Index: Integer]: TDefParam read GetItem write SetItem; default;
   ...
 end;

{TMetod}
 
 TMetod = class(TCollectionItem)
 private
   ...
   FDefParams : TDefParams;
   procedure SetDefParams(const Value: TDefParams);
 public
   constructor Create(Collection: TCollection); override;
   destructor Destroy; override;
   ...
 published
   property DefParams: TDefParams read FDefParams write SetDefParams;
   ...
 end;

{TMetods}
 TMetods = class(TCollection)
 private
   FObj: TMyObj;
 protected
   function GetItem(Index: Integer): TMetod;
   procedure SetItem(Index: Integer; const Value: TMetod);
   function GetOwner: TPersistent; override;
   ...
 public
   constructor Create(AddObj: TAddObj);
   property Items[Index: Integer]: TMetod read GetItem write SetItem; default;
   ...
 end;

{TAddObj}
 TAddObj = class(TComponent)
 private
   FMetods: TMetods;
   //
   procedure SetMetods(const Value: TMetods);
   procedure SetProps(const Value: TProps);
 public
   constructor Create(AOwner: TComponent); override;
   destructor Destroy; override;
 published
   property Metods: TMetods read FMetods write SetMetods;
 end;


 
bk   (2004-12-15 14:38) [3]

Всем спасибо, нашел ошибку, виной всему собственная невнимательность...


 
CooLSeS ©   (2005-03-14 13:02) [4]

Хоть бы написал в чем ошибка, помог другим, а то не которые тоже могут мучиться с этим вопросом!!



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

Текущий архив: 2005.11.20;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.058 c
6-1122662292
Gamer
2005-07-29 22:38
2005.11.20
Скриншоты по сетке


2-1130528004
злобная танька
2005-10-28 23:33
2005.11.20
Memo


11-1109298582
Lars
2005-02-25 05:29
2005.11.20
A Perfect use for KOL?? CGI web server?


1-1130075337
Tori
2005-10-23 17:48
2005.11.20
передача значений параметров потоку


2-1130411420
SamProf
2005-10-27 15:10
2005.11.20
Как уменьшить JPG картинку.