Шаг 15.
Вкладка Standard. Компонент TRadioGroup

    На этом шаге мы рассмотрим компонент TRadioGroup

    Если в программе требуется использовать несколько групп переключателей (например, одну для выбора типа устройства, а другую для выбора его состояния), то можно применить один из двух подходов. Первый состоит в выделении для каждой группы специального объекта (панели), чтобы система Delphi могла понять, как объединяются переключатели. Второй подход состоит в использовании компонента TRadioGroup (Группа переключателей), который объединяет свойства и методы, обеспечивающие поддержку работы группы переключателей. После размещения в форме компонента TRadioGroup входящие в него переключатели задаются после перечисления их названий. Эти названия вводятся в свойство Items, имеющее тип TString.

    Рассмотрим свойства компонента TRadioGroup.

   
Таблица 1. Свойства компонента 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




Предыдущий шаг Содержание Следующий шаг