Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Компоненты";
Текущий архив: 2005.11.20;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.049 c
8-1120145991
Radgar
2005-06-30 19:39
2005.11.20
Разбивание Timage на секции.


4-1127286555
IceBeerg
2005-09-21 11:09
2005.11.20
Hook из приложения


4-1126889831
ArtemESC
2005-09-16 20:57
2005.11.20
свойства другого окна


14-1130206118
Хаб1
2005-10-25 06:08
2005.11.20
Посоветуйте USB-концентратор ?


2-1130604578
Arazel
2005-10-29 20:49
2005.11.20
Преобразование Width в Length





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский