掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
動的生成したコンポーネントに親を設定するには? (ID:44214)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
すでにKHE00221さんから回答がありますが、一応。 >何故このような違いが起きるのか TComponentClass.Create(Self)で作成されるオブジェクトは、TComponentとして扱われます。 そしてParentはTControlのプロパティです。 しかし継承順は TObject→TPersistent→TComponent→TControl ですので… TComponent.Parentはありません。 よってコンパイラはParentを with文で指定された c.Create(Self) の要素とは扱えず、 次に Self.Parent として解釈を試みます。 結果として Form1.Parent := TabControl1; となり、循環してしまいます。 >どのようにしたら関数が作成できるか TComponentClass から TControlClass に変えればOKかと。 procedure TForm1.AddC(c: TControlClass); begin with c.Create(Self) do begin Parent := TabControl1; //親コンポーネントを指定 end; end;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.