パネルコンポーネントの中でパネルを作成したいです。

解決


カフェ  2006-09-27 10:57:00  No: 23388  IP: 192.*.*.*

こんにちは。カフェです。

現在、TCustomPanelから派生したコンポーネントを作成しています。
その中にTPanelコンポーネントを動的生成しようとしてますが、その時のParentの指定方法が分かりません。

C++ Builder のソースで申し訳ないのですが、
以下、TCustomPanelから派生するコンポーネントのコンストラクタです。

TPanel* _InnerPanel;

__fastcall NShadowPanel::NShadowPanel(TComponent* Owner)
  : TCustomPanel(Owner)
{
  TCustomPanel::BevelOuter = bvNone;
  TCustomPanel::Caption = "";

  _InnerPanel = new TPanel( this->Owner );
  _InnerPanel->Parent = this;
  _InnerPanel->BevelOuter = bvNone;
  _InnerPanel->Caption = "";
}

こうすると、TPanel が TCustomPanel の子にならず、このコンポーネントを
貼り付けたフォームの子となってしまいます。

どうすれば良いのでしょうか?ご教授お願いします。

編集 削除
sk  2006-09-27 12:30:10  No: 23389  IP: 192.*.*.*

delphiで試してみましたがparentはPanelになってました
ShowMessage(_InnerPanel.Parent.ClassName);
ShowMessage(_InnerPanel.Owner.ClassName);

innerpanelのコンストラクタにthisわたしてみてはどうでしょうか

編集 削除
カフェ  2006-09-27 13:38:12  No: 23390  IP: 192.*.*.*

sk さんありがとうございました!

てっきりOwnerを渡さなきゃいけないと思っていらないことやってました。
確かにthisを渡したら TCustumPanel の中に TPanel が入ってくれました。

解決できてうれしいです。

編集 削除