|
|
||||
Tips > |
|||||
GroupBox 内のコンポーネントの Enabled を変える |
更新 : 2010/05/11 |
||||
|
|
||
解説: GroupBox は複数のコンポーネントをグループにまとめることができます。処理内容に関連のあるコンポーネントは、 GroupBox 内に納めておくと視覚的に分かりやすく使い勝手が向上します。GroupBox 内に配置したコンポーネントは GroupBox を移動させるといっしょに移動するようになります。 使用例: CheckBox1 のチェックを on/off することで GroupBox1 内の全てのコンポーネントの Enabled の true/false を変えています。 準備として、CheckBox(Checked=true), GroupBox を配置後、GroupBox の内に Edit, RadioButton を配置してください。位置は適当で大丈夫です。 CheckBox1 のチェックをオフにすると、GroupBox1 内の全てのコンポーネントの Enabled が false に変わります。 なお、GroupBox1 内に GroupBox2 などがある場合は再帰処理が必要になります。 //------------------------------------------------------------------- void __fastcall TForm1::CheckBox1Click(TObject *Sender) { // GroupBox1 内の子コントロールの Enabled を変える TControl *ctrl1, *ctrl2; // TControl は全てのビジュアルコンポーネントの抽象基本クラス // GroupBox1 内の子コントロールのみを処理 for (int i = 0; i < GroupBox1->ControlCount; ++i) { ctrl1 = GroupBox1->Controls[i]; // ビジュアルコンポーネントを処理 if (dynamic_cast<TControl*>(ctrl1) != NULL) { ctrl2 = dynamic_cast<TControl*>(ctrl1); ctrl2->Enabled = CheckBox1->Checked; } } } //------------------------------------------------------------------- |