子コントロールを持つコンポーネント
TBitBtnを二つ配置して、OKボタンとキャンセルボタンを持たせるようなコンポーネントを作成する時に、__property TBitBtn* OkButton = { read = FOkButton }; とかやっておくと、設計時にプロパティエディタでプロパティを設定する事はできるのだが、TBitBtnに関するプロパティは実行時に反映せず、プロパティの値も元に戻ってしまう。
__fastcall TMyPanel::TMyPanel (TComponent* Owner)
: TPanel (Owner),
FOkButton (new TBitBtn (this)),
FCancelButton (new TBitBtn (this))
{
FOkButton->SetSubComponent (true);
FCancelButton->SetSubCmponent (true);
}
: TPanel (Owner),
FOkButton (new TBitBtn (this)),
FCancelButton (new TBitBtn (this))
{
FOkButton->SetSubComponent (true);
FCancelButton->SetSubCmponent (true);
}
と子コントロールのSetSubComponentにtureを渡してやる事で、設定が可能になる。
| 固定リンク
「CBuilder」カテゴリの記事
- 一定時間アイドル状態が続いたら何かをしたい(2015.11.26)
- TMetafileへの描画が反映されない(2015.07.30)
- TDataModuleはClientHeightプロパティを持っていない(2015.02.19)
- VCLのTStringsを検索キーワードのトークナイザー的に使ってみる(2014.12.18)
- Delphi/C++Builder TControl::ClientToScreenでVCLコントロール上の座標をスクリーン座標に変換する(2014.12.02)
この記事へのコメントは終了しました。
コメント