こんにちは。カフェです。
現在、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 の子にならず、このコンポーネントを
貼り付けたフォームの子となってしまいます。
どうすれば良いのでしょうか?ご教授お願いします。
delphiで試してみましたがparentはPanelになってました
ShowMessage(_InnerPanel.Parent.ClassName);
ShowMessage(_InnerPanel.Owner.ClassName);
innerpanelのコンストラクタにthisわたしてみてはどうでしょうか
sk さんありがとうございました!
てっきりOwnerを渡さなきゃいけないと思っていらないことやってました。
確かにthisを渡したら TCustumPanel の中に TPanel が入ってくれました。
解決できてうれしいです。
ツイート | ![]() |