C++Builderでは、コンポーネントのプロパティ「Visible」で表示・非表示を設定する。
trueならコンポーネントを表示、falseなら非表示にする。
ところが、「Visible」プロパティをtrueにしても、親コントロールが非表示の場合には表示されない。
本当に表示されているかどうかはコンポーネントの「Showing」プロパティで知ることができる。
「Showing」プロパティは、本当に表示されている時はtrue、表示されていない時はfalseを返す。
サンプルプログラムは、Edit1コンポーネントのShowingプロパティの値を表示するプログラム。
チェックボックスのチェックにあわせてコンポーネントのVisibleプロパティの値を変更する。
void __fastcall TForm1::CheckBox1Click(TObject *Sender)
{
//チェックボックス「Panel1.Visible」のクリックイベント
Panel1->Visible = CheckBox1->Checked;
}
void __fastcall TForm1::CheckBox2Click(TObject *Sender)
{
//チェックボックス「Edit1.Visible」のクリックイベント
Edit1->Visible = CheckBox2->Checked;
Label1->Caption = BoolToStr(Edit1->Showing, true);
}
Edit1の親コンポーネントであるPanel1が表示されている時は、Edit1のShowingプロパティはtrueになる。
Edit1の親コンポーネントであるPanel1が表示されていない時は、Edit1のVisibleプロパティがtrueでもShowingプロパティはfalseになる。