На этом шаге мы рассмотрим компонент TRadioGroup
Если в программе требуется использовать несколько групп переключателей (например, одну для выбора типа устройства, а другую для выбора его состояния), то можно применить один из двух подходов. Первый состоит в выделении для каждой группы специального объекта (панели), чтобы система Delphi могла понять, как объединяются переключатели. Второй подход состоит в использовании компонента TRadioGroup (Группа переключателей), который объединяет свойства и методы, обеспечивающие поддержку работы группы переключателей. После размещения в форме компонента TRadioGroup входящие в него переключатели задаются после перечисления их названий. Эти названия вводятся в свойство Items, имеющее тип TString.
Рассмотрим свойства компонента TRadioGroup.
Свойство | Описание |
---|---|
property Columns: Integer; | Определяет количество столбцов переключателей |
property ItemIndex: Integer; | Содержит индекс установленного переключателя |
property Items: TStrings; | Содержит список строк с заголовками элементов. Добавление/удаление элементов достигается добавлением/удалением строк списка Items |
property Caption: TCaption; | Определяет заголовок группы (по умолчанию она называется RadioGroup1) |
Так как компонент TRadioGroup представляет единое целое со своими переключателями, использование его в программе отличается от использования компонента TRadioButton.
После размещения компонента на форме он пуст. Чтобы создать в нем хотя бы один переключатель, следует раскрыть редактор списка Items и ввести хотя бы одну строку: строки Items используются как поясняющие надписи справа от переключателей, а их количество определяет количество переключателей в группе. Заметим также, что после создания компонента его свойство ItemIndex по умолчанию имеет значение -1, это значит, что ни один переключатель в группе не установлен. Чтобы в момент появления компонента на экране какой-то переключатель был уже установлен, необходимо на этапе конструирования с помощью окна инспектора объектов или программно установить в свойство ItemIndex номер соответствующего переключателя (нумерация начинается с 0). Это же свойство позволяет программе проанализировать выбор пользователя.
Для получения состояния переключателя в группе можно использовать обработчик событий OnClick. Например, чтобы отображать с помощью надписи Label1 название текущего переключателя, обратитесь к свойству Items (Список строк) и выделите тот элемент, номер которого записан в свойстве ItemIndex. Предварительно следует проверить, имеется ли вообще выделенный переключатель (значение свойства ItemIndex не равно -1).
Поместите на форму компоненты: RadioGroup1, RadioGroup2, Label1, Label2. Создайте переключатели для компонентов RadioGroup1, RadioGroup2, как на рис. 1. Для компонента RadioGroup1 создайте обработчик OnClick:
procedure TForm1.RadioGroup1Click (Sender: TObject); begin if RadioGroup1.ItemIndex>-1 then Label1.Caption:='Выбран '+ RadioGroup1.Items [RadioGroup1.ItemIndex]; end;
Для компонента RadioGroup2 создайте обработчик OnClick:
procedure TForm1.RadioGroup2Click (Sender: TObject); begin if RadioGroup2.ItemIndex>-1 then Label2.Caption:='Он '+ RadioGroup2.Items [RadioGroup2.ItemIndex]; end;
Рис.1.Группы переключателей
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) RadioGroup1: TRadioGroup; RadioGroup2: TRadioGroup; Label1: TLabel; Label2: TLabel; procedure RadioGroup1Click(Sender: TObject); procedure RadioGroup2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.RadioGroup1Click(Sender: TObject); begin if RadioGroup1.ItemIndex>-1 then Label1.Caption:='Выбран '+ RadioGroup1.Items[RadioGroup1.ItemIndex]; end; procedure TForm1.RadioGroup2Click(Sender: TObject); begin if RadioGroup2.ItemIndex>-1 then Label2.Caption:='Он '+ RadioGroup2.Items[RadioGroup2.ItemIndex]; end; end.
На следующем шаге мы рассмотрим компонент TPanel