- •Министерство образования российской федерации
- •Северо-западный государственный заочный технический университет
- •В. Л. Макаров
- •Прикладное программирование
- •Конспект лекций с. Петербург 2003г
- •Окно формы. Форма является основой большинства приложений , так как на ней размещаются другие управляющие компоненты. Внешний вид окна формы показан на рисунке 1.3.
- •3.Основные свойства, методы и события формы
- •Компоненты vcl
- •5.1. Кнопки управления
- •5.2. Окно редактирования Edit
- •5.3 Многострочные окна редактирования Memo и RichEdit
- •5.4 Компоненты выбора из списков – ListBox, CheckListBox, ComboBox
- •5.5 Элемент управления Label (надпись или метка)
- •5.6 Элемент управления RadioButton (Радиокнопка)
- •5.7 Полосы прокрутки (ScrollBar)
- •5.9 Компонент Timer(Таймер)
- •5.10 Компонент StringGrid ( таблица строк)
- •5.11 Компонент Chart – графики и диаграммы
- •5.12 Компонент f1Book
- •6. Создание меню
- •7. Системные диалоги
- •7.1 Диалоги открытия и сохранения файлов
- •7.2 Диалог выбора шрифта(компонент FontDialog )
- •7.3 Диалог выбора цвета(компонент ColorDialog )
- •7.4Диалоги поиска и замены текста(компоненты FindDialog и ReplaceDialog )
- •8.1 Структура головного файла проекта
- •8.2 Структура файлов модулей форм
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) используются для определения включенных радио кнопок.