![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Коллекция в коллекции... [D7, Win2k]
bk © (2004-12-15 13:20:00)Есть объект (компанент) полем которого является коллекция
(заполняется на этапе проектирования - с ним все нормально)
но у каждого элемента этой коллекции есть поле которое в свою очередь тоже является коллекцией (вот с ним проблема), при попытке заполнения открывается тот-же редактор элементов что и у первой коллекции, хотя объекты у коллекций разные
ЗЫ. если вопрос тупой, то попрошу не бить, а объяснить ошибку (я вообще-то понятливый)
CooLSeS (2005-03-14 13:02:00) [1]Хоть бы написал в чем ошибка, помог другим, а то не которые тоже могут мучиться с этим вопросом!!
bk (2004-12-15 14:38:00) [2]Всем спасибо, нашел ошибку, виной всему собственная невнимательность...
bk (2004-12-15 13:50:00) [3]{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;
Юрий Зотов (2004-12-15 13:34:00) [4]Покажите объявления классов и код методов GetOwner для 2-х элементов колекций и 2-х коллекций.