Главная страница
    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.45 MB
Время: 0.027 c
1-1130527472
Arazel
2005-10-28 23:24
2005.11.20
TabControl > TabsScroll (CUSTOMDRAW)


14-1130421767
ПЛОВ
2005-10-27 18:02
2005.11.20
Странная ситуация с материнкой


2-1130806936
Живописец
2005-11-01 04:02
2005.11.20
Как нарисовать на Delphi дерево ?


3-1128951085
MakNik
2005-10-10 17:31
2005.11.20
похоже на блокировку таблиц....?...


9-1120447929
gydvin
2005-07-04 07:32
2005.11.20
Где почитать





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский