Для организации возможности выбора одного или нескольких значений в C++ Builder используются переключатели.
Компонент RadioButtonпредназначен для выбора между несколькими взаимоисключающими вариантами. Радиокнопки образуют группы взаимосвязанных индикаторов, из которых обычно может быть выбран только один. Рассмотрим основные свойства компонента.
Свойство Captionсодержит надпись, появляющуюся около кнопки. Значение свойства Alignmentопределяет, с какой стороны от кнопки появится надпись: taLeftJustify – слева, taRightJustify – справа (это значение принято по умолчанию).Свойство Checked определяет, выбрана ли данная кнопка пользователем, или нет. Поскольку в начале выполнения приложения обычно надо, чтобы одна из кнопок группы была выбрана по умолчанию, ее свойство Checked надо установить в true в процессе проектирования.
Компонент CheckBox. Индикаторы с флажком CheckBox используются в приложениях для того, чтобы пользователь мог включать и выключать какие-то опции, или для индикации состояния. При каждом щелчке пользователя на индикаторе его состояние изменяется, проходя в общем случае последовательно через три значения: выделение (появление черной галочки), промежуточное (серое окно индикатора и серая галочка) и не выделенное (пустое окно индикатора). Этим трем состояниям соответствуют три значения свойства компонента State: cbChecked, cbGrayed, cbUnchecked. Впрочем, эти три состояния допускаются только при значении другого свойства AllowGrayed равном true. Если же AllowGrayed = false (значение по умолчанию), то допускается только два состояния: выделенное и не выделенное.
Пример 11.Программа тестировщик.
Решение: Код кнопок:
int n=0,s=0,k=0;
{Кнопка “Ok” }
void __fastcall Tform1::Button1Click(TObject *Sender)
{
n++;
if (n==1 && RadioButton1->Checked) s++;
if (n==2 && RadioButton3->Checked) s++;
if (n==3 && RadioButton2->Checked) s++;
}
{ Кнопка “Следующий” }
void __fastcall Tform1::Button2Click(TObject *Sender)
{
k++;
RadioButton1->Checked=false;
RadioButton2->Checked=false;
RadioButton3->Checked=false;
if (k==1) {Edit1->Text="Тип файла описания формы в Borland C++?";
RadioButton1->Caption="h";
RadioButton2->Caption="cpp";
RadioButton3->Caption="frm"; }
if (k==2) {Edit1->Text=" Тип файла модуля в Borland C++?";
RadioButton1->Caption="dpr";
RadioButton2->Caption="cpp";
RadioButton3->Caption="frm"; }
if (k==3) Edit2->Text="Количество правильных ответов: "+ IntToStr(s);
}
Пример 12.По номеру времени года, вывести названия месяцев.