Construiremos el gestor del evento asociado a modificar el componente CheckBox de forma que cuando se active (inicialmente está desactivado) se muestren los dos botones de radio y se active el botón de OK. Cuando se desactive, los botones de radio se volverán a ocultar y el botón de Ok se desactivará. Para ello, escribiremos el gestor asociado al evento OnClick del componente CheckBox:
//------------------------------------------------------------ void __fastcall TMainForm::CheckBoxClick(TObject *Sender) { if (CheckBox->Checked == true) { RadioButton1->Show(); RadioButton2->Show(); RadioButton1->Checked = true; OKButton->Enabled = true; } else { RadioButton1->Hide(); RadioButton2->Hide(); OKButton->Enabled = false; LabelOutput->Caption = ""; } } //------------------------------------------------------------
Al ejecutar el programa, cuando se activa el CheckBox produce el siguiente resultado:
Figura E6.1. El programa al activar el CheckBox
Finalmente, escribiremos el gestor del evento asociado a hacer click sobre el botón OK, que está operativo (propiedad Enabled) únicamente cuando el CheckBox está activado, y en consecuencia, cuando pueden emplearse los botones de radio. Observar el siguiente código y dos resultados de la ejecución (figuras E6.2 y E6.3):
//------------------------------------------------------------ void __fastcall TMainForm::OKButtonClick(TObject *Sender) { if (RadioButton1->Checked) { if (Edit->Text == "") LabelOutput->Caption = "Escogió Opción 1, Sr/Sra. desconocido/a"; else LabelOutput->Caption = "Escogió Opción 1, Sr/Sra. " + Edit->Text; } else { if (Edit->Text == "") LabelOutput->Caption = "Escogió Opción 2, Sr/Sra. desconocido/a"; else LabelOutput->Caption = "Escogió Opción 2, Sr/Sra. " + Edit->Text; } } //------------------------------------------------------------
Figura E6.2. Resultado al seleccionar la opción 1 estando el cuadro de edición vacío.
Figura E6.3. Resultado al seleccionar la opción 2 habiendo escrito algo en el cuadro de edición.