§ 3. Проектирование интерфейса оконного приложения с использованием элементов управления

3.5. *Элементы управления CheckBox (флажок) и RadioButton (переключатель)

Компонент CheckBox (флажок) используется в приложениях для включения или выключения каких-либо опций. На панели компонентов Standard флажок изображен в виде , имя объекта — CheckBox. Флажок, помещенный на форму, получает имя CheckBoxN, где N — номер 1, 2, 3… (пример 3.15)Некоторые свойства компонента CheckBox приведены в таблице (пример 3.16).

Компонент RadioButton (переключатель, радиокнопка) используется в приложениях для включения или выключения каких-либо опций. На панели компонентов Standard радиокнопка изображена в виде , имя объекта — RadioButton. Переключатель, помещенный на форму, получает имя — RadioButtonN, где N — номер 1, 2, 3… (см. пример 3.15).

Свойства Caption, Alignment и Checked у радиокнопки совпадают с аналогичными свойствами флажка.

Обычно радиокнопки образуют группы взаимосвязанных переключателей, позволяющих выбрать только один из нескольких возможных вариантов. При размещении на форме нескольких переключателей включенным должен быть только один из них (компонент RadioGroup).

Пример 3. 17. Создать проект для вычисления частного от деления одного целого числа на другое. Числа задаются в текстовых полях. Результат вычисляется при нажатии на кнопку «Разделить» и помещается в третье текстовое поле. В зависимости от состояния флажка в результате выдается целое или вещественное значение частного.

Этапы выполнения задания

  1. Поместить на форму три текстовых поля, три надписи, флажок и кнопку.
  2. Очистить поля Text у всех компонентов Edit.
  3. Для компонента Edit3, в котором будет выводиться ответ, установить значение True для свойства ReadOnly.
  4. Изменить свойство Caption у компонентов Label («Делимое», «Делитель», «Частное»).
  5. Изменить свойство Caption компонента Button1 на «Разделить».
  6. Изменить свойство Caption компонента CheckBox1 на «Целочисленное деление».
  7. Написать обработчик события OnClick для компонента Button1.
    7.1. Проверить, что поля компонентов Edit1 и Edit2 не пусты. Если это не так, то вывести сообщение «Одно из полей не заполнено».

    7.2. Проверить состояние переключателя CheckBox. Если он включен, то выполнить целочисленное деление, иначе обычное деление.
    7.3. Вывести результат.
  8. Выполнить программу для различных значений. Проверить работу приложения, когда одно из полей Edit1 или Edit2 (или оба поля) пустые.

Пример 3.15. Компоненты CheckBox (флажок) и RadioButton (радиокнопка) на форме:

Пример 3.16. Свойства компонента CheckBox (флажок):

Свойство

Назначение

Checked

Значение True у этого свойства показывает, что компонент выделен (установлена галочка — ), при значении False компонент не выделен (пустое окно индикатора — )

AllowGrayed

Значение False у этого свойства (установлено по умолчанию) допускает два состояния флажка: выделен и не выделен, значение True допускает три состояния флажка: выделен, не выделен и промежуточное

State

Позволяет выбрать одно из трех состояний флажка: cbChecked (выделен), cbGrayed(промежуточное значение — ) и cbUnchecked (не выделен) при значении True у свойства AllowGrayed

Caption

Надпись возле компонента CheckBox

Alignment

Определяет с какой стороны кнопки размещается надпись: taLeftJustify (слева), taRightJustify (справа)

Пример 3.17. Форма на этапе конструирования:

Обработчик события OnClick для Button1.

procedure TForm1.Button1Click(Sender: TObject);
var a, b, c : integer;
    d : real;
begin
  if (Edit1.Text <> '') and
     (Edit2.Text <> '') then
  begin
    a := StrToInt(Edit1.Text);
    b := StrToInt(Edit2.Text);
    if CheckBox1.checked then
    begin
      c := a div b;
      Edit3.Text := IntToStr(c);
    end
    else
    begin
      d := a / b;
      Edit3.Text := FloatToStrF(d, ffFixed, 5, 2);
    end;
  end
  else
    ShowMessage('Одно из полей
               не заполнено');
end;

Работающее приложение:

Деление нацело

Вещественный результат деления

Поля не заполнены