ホーム
|
アプリケーション | Tips | ダウンロード | プログラム
| コラム

CBアプリ工房


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;
        }
    }
}
//-------------------------------------------------------------------



[ ホーム | ページトップ | ブック | リンク | サイトマップ ]
Copyright(c) 2003 Shibu All rights reserved.