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

解決


カフェ  2006-09-27 19:57:00  No: 23388

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

現在、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 21:30:10  No: 23389

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

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


カフェ  2006-09-27 22:38:12  No: 23390

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

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

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


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

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






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