На этом шаге мы рассмотрим компонент TRadioButton
В отличие от флажка, компонент TRadioButton (Переключатель) предназначен для выбора одного значения из ряда возможных. Переключатели всегда используются группами.
Когда пользователь выбирает следующий переключатель, то выделение с текущего переключателя автоматически снимается, таким образом, в группе выделен всегда только один переключатель.
Рассмотрим свойства компонента TRadioButton.
Свойство | Описание |
---|---|
property Alignment: TAlignment; | Это свойство аналогично свойству флажка. Оно определяет положение подписи справа или слева от переключателя |
property Checked: Boolean; | Так же аналогично свойству флажка и определяет состояние объекта (True, если переключатель включен) |
property Name: String; | Имя меню, которое автоматически будет подставлено в свойство меню формы |
property Font: TFont; | С его помощью можно разнообразить вид надписи |
property Caption: String; | Содержит текст |
Методы GetChecked и SetChecked, позволяющие обращаться к свойству Checked и изменять его значение, в тексте программы явно не используются. Они предназначены для использования в унаследованных классах TRadioButton (конкретных реализациях переключателя). Для отслеживания состояния конкретного переключателя можно обрабатывать событие OnClick.
В форме размещается несколько переключателей, и во время проектирования один из переключателей желательно включить, а все остальные по умолчанию оставить выключенными.
Для динамического отслеживания состояния переключателей создайте обработчик события OnClick для каждого из них. Статус переключателя можно отобразить, например, с помощью надписи Label1.
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) RadioButton1: TRadioButton; Label1: TLabel; RadioButton2: TRadioButton; procedure RadioButton1Click(Sender: TObject); procedure RadioButton2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.RadioButton1Click(Sender: TObject); begin if RadioButton1.Checked then Label1.Caption:='Включен первый'; end; procedure TForm1.RadioButton2Click(Sender: TObject); begin if RadioButton2.Checked then Label1.Caption:='Включен второй'; end; end.
Если вы все сделали правильно, то у вас должно получиться следующее:
Рис.1.Состояния переключателей
Помимо обработчика событий OnClick, который использовался в примере, существуют другие обработчики событий:
Обработчик событий | Описание |
---|---|
OnEnter | Событие возникает в момент получения элементом фокуса в результате манипуляции мышью, нажатия клавиши табуляции или программной передачи фокуса |
OnExit | Событие возникает в момент потери элементом фокуса в результате манипуляции мышью, нажатия клавиши табуляции или программной передачи фокуса |
На следующем шаге мы рассмотрим компонент TListBox