CollectionItemの中のCollection

解決


hiro  2001-11-15 21:42:20  No: 300

TCollectionItemから派生したクラス(A)のメンバに
TCollectionから派生したクラス(B)を持たせたいのですが、
このA上のBを設定する際にオブジェクトインスペクタで「・・・」
ボタンを押しても通常のCollectionのプロパティエディタが
表示されないのですが、何が問題か分かりません。
どなたかご教授願います。
イメージとしてはTTableのFieldDefsの中の
ChildDef(TFieldDef)を設定する際の「・・・」ボタンを
押したときのような感じを実現したいのですが。

Sample

TMyCollectionB = class(TCollectionItem)

TMyCollectionsB = class(TCollection)
public
  property Items[Index: Integer]: TMyCollectionB read 〜
end;

TMyCollectionA = class(TCollectionItem)
private
  FB: TMyCollectionsB;
published
  property B: TMyCollectionsB read 〜
end;

TMyCollectionsA = class(TCollection)
public
  property Items[Index: Integer]: TMyCollectionA read GetItem write SetItem; default;
end;

TMyCompo = class(T〜)
private
  FA:  TMyCollectionsA;
published
  A: TMyCollectionsA read 〜
end;


PAPY  2001-11-16 02:41:06  No: 301

細かいことは覚えていないのでhttp://madia.world.coocan.jp/Delphi/old.htm

開発者支援コンポーネントキット
のImageViewでコレクションを使っていたと思うので参考にしてみて下さい。

※全然、ちがったらごめんさい。


hiro  2001-11-16 21:25:47  No: 302

ちょっとちがってました。
CollectionItemから派生したクラスにさらにCollection型のプロパティが乗っているということなんです。
TTableのVCLソースを見てみてもさっぱり分かりません。
どなたか同じようなことを実現されている方いないでしょうか?


hiro  2001-11-19 21:30:40  No: 303

自己レス
解決しました。
TCollectionから派生したクラスの中でGetOwnerメソッドを記述していなかった
ことが原因でした。


※返信する前に利用規約をご確認ください。








  このエントリーをはてなブックマークに追加