Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Прикл_программир_ч1.doc
Скачиваний:
6
Добавлен:
18.09.2019
Размер:
11.05 Mб
Скачать

5.6 Элемент управления RadioButton (Радиокнопка)

Радиокнопки образуют группу взаимосвязанных индикаторов из которых может быть выбран только один, т.е.из кнопок, объединенных в группу, включена может быть только одна. При включении одной кнопки группы остальные кнопки автоматически выключаются. Таким образом, этот элемент управления предоставляет пользователю выбор одного варианта из многих.

Основные свойства элемента:

Caption - содержит надпись, появляющуюся около кнопки;

Alignment - определяет, с какой стороны от кнопки появляется надпись: taLeftJustify - слева, taRightJustify - справа (это значение принято по умолчанию);

Checked - определяет, выбрана ли данная кнопка пользователем, или нет. Поскольку в начале выполнения приложения обычно надо, чтобы одна из кнопок группы была выбрана по умолчанию, ее свойство Checked надо установить в true в процессе проектирования.

Радиокнопки могут размещаться непосредственно на форме или на панелях GroupBox и RadioGroup. На панель RadioGroup кнопки не надо переносить с палитры компонентов, так как они присутствуют там изначально и располагаются регулярными рядами. Надпись в левом верхнем углу панели определяется свойством Caption. Надписи кнопок и их количество определяются свойством Items, имеющим тип TStrings. Во время проектирования задание свойства Items осуществляется вызываемым из Инспектора Объектов редактором списков строк. Сколько строчек вы запишете в нем, столько и будет кнопок. Во время выполнения формировать список Items можно, используя методы и свойства класса TStrings.Кнопки можно разместить в несколько столбцов (не более 17), задав свойство Columns. По умолчанию Columns = 1, т.е. кнопки размещаются друг под другом.Определить, какую из кнопок выбрал пользователь, можно по свойству ItemIndex, которое показывает индекс выбранной кнопки (начинаются с 0). По умолчанию ItemIndex = -1, что означает отсутствие выбранной кнопки. Если вы хотите, чтобы в момент начала выполнения приложения какая-то из кнопок была выбрана (это практически всегда необходимо), то надо установить соответствующее значение ItemIndex во время проектирования. Если вы используете радиокнопки не для ввода, а для отображения данных, устанавливать значение ItemIndex можно программно во время выполнения приложения. Компонент RadioGroup целесообразно использовать в тех случаях , когда надписи кнопок имеют примерно одинаковую длину, а число кнопок в каждом столбце одинаково. Если надписи на кнопках существенно разняться по длине , то целесообразно использовать компонент GroupBox, который допускает нерегулярное расположение кнопок.

Наиболее часто используемым событием радиокнопок является событие OnClick, которое наступает при щелчке на компоненте. В обработчике этого события можно анализировать свойств Checked, которое уже приняло новое значение.

Программный код приложения, характеризующего основные свойства компонента RadioButton показан на рисунке 5.17 Для реализации интерфейса этого приложения на форме необходимо расположить однострочный реактор(Edit), две кнопки типа (Button), три радио кнопки(RadioButton ) и одну радио группу(RadioGroup) с тремя кнопками. Свойства элементов, установленные во время проектирования , показаны в таблице 5.9.

Таблице 5.9

Компонент

Свойство

Значение

Форма

Caption

Свойства компонента RadioButton

Кнопки

Caption

Определение вкл. радио кнопки (Button1)

Caption

Опр. вкл. рад. кн.в RadioGroup1 (Button2)

Радио кнопки

Caption

Бирюзовый (RadioButton1)

Caption

Красный (RadioButton2)

Caption

Голубой (RadioButton3)

Радио группа

Name

RadioGroup1

Окно редактирования

Name

Edit1

Метка

Name

Lb1

Другие свойства компонентов принимаются по умолчанию.

//Программный код приложения, характеризующего основные свойства компонента RadioButton

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

{

if(RadioButton1->Checked>0)

Edit1->Text="Включена 1-ая радиокнопка";

else if(RadioButton2->Checked>0)

Edit1->Text="Включена 2-ая радиокнопка";

else if(RadioButton3->Checked>0)

Edit1->Text="Включена 3-ая радиокнопка";

else

Edit1->Text="Не включена ни одна радиокнопка";

}

//---------------------------------------------------------------------------

void __fastcall TForm1::RadioButton1Click(TObject *Sender)

{

Form1->Color=clAqua;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::RadioButton2Click(TObject *Sender)

{

Form1->Color=clRed;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::RadioButton3Click(TObject *Sender)

{

Form1->Color=clBlue;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)

{

if(RadioGroup1->ItemIndex>-1)

Edit1->Text="Включена"+IntToStr(RadioGroup1->ItemIndex+1)+"-ая радиокнопка";

else

Edit1->Text="Не включена ни одна радиокнопка";

}

//---------------------------------------------------------------------

Рис.5.17 Программный код приложения, характеризующего основные свойства компонента RadioButton

В этом приложении при включении радио кнопок RadioButton1, RadioButton2 и RadioButton3 меняются цвета фона формы, а события кнопок Button1 и Button2(On Click) используются для определения включенных радио кнопок.