Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
123123.docx
Скачиваний:
5
Добавлен:
01.07.2025
Размер:
933 Кб
Скачать
☆

4. Компоненты CheckBox, RadioButton.

CheckBox это флажок - независимый переключатель. Флажок Delphi CheckBox используется в программе для визуализации состояний включено-выключено. Каждый щелчок мышкой по компоненту Delphi CheckBox меняет его состояние на противоположное. Смена состояния переключателя также доступна и в программе.    Delphi CheckBox представляет собой сочетание небольшого окошка, которое и визуализирует наличием или отсутствием "галочки" состояние компонента, и компонента Label - заголовка, поясняющего назначение переключателя.

Основное свойство компонента CheckBox - Checked типа Boolean. То есть, на приведённом рисунке    CheckBox1.Checked = False;    CheckBox2.Checked = True; Свойство Checked доступно как для считывания, так и для записи, то есть, добиться такого как на рисунке вида компонентов Delphi CheckBox можно так:    CheckBox1.Checked := False;    CheckBox2.Checked := True;

   Главным образом, компонент Delphi CheckBox применяется в условных операторах, и помогает сформировать условия выбора того или иного действия в программе.    Компонент Delphi CheckBox - независимый переключатель, то есть в группе из нескольких компонентов каждый из них может быть установлен в произвольное состояние, независимое от состояния остальных компонентов группы (в отличие от компонента Radiobutton).    Помимо свойства Checked, позволяющего управлять состоянием компонента, у Delphi CheckBox есть свойство State (состояние), которое может иметь уже три значения. Первые два значения cbChecked ("отмечено") и cbUnChecked ("не отмечено"), а третье - cbGrayed ("не определено" или "не знаю") становится доступным для выбора если установить в True свойство AllowGrayed компонента. Свойства Checked и State связаны между собой:

  • если свойство State равно cbChecked, свойство Checked = True;

  • если свойство State равно cbUnchecked или cbGrayed, свойство Checked = False.

   При щелчке мышкой эти три состояния сменяют друг друга в следующей последовательности:

  1. cbGrayed - не определено (или "не знаю");

  2. cbChecked - отмечено;

  3. cbUnChecked - не отмечено;

   Расположением текста в компоненте Delphi CheckBox также можно управлять. Для этой цели служит свойство Alignment, принимающее значения:

  1. taRightJustify - расположение текста справа;

  2. taLeftJustify - расположение текста слева.

RadioButton - это "радиокнопка", и как следует из названия, служит для "переключения каналов", как и в настоящем радиоприёмнике. Это значит, если выбран один из компонентов Delphi RadioButton, то с остальных компонентов выбор автоматически снимается. Получается, что в данный момент может быть выбран только один из группы компонентов Delphi RadioButton.    Если в начальный момент ни один из компонентов не выбран, то достаточно сделать такой выбор - щёлкнуть по одному из компонентов, и в дальнейшем можно только "переключать" компоненты, снять выбор уже невозможно. Хотя нет, есть способ - программно!    Компонент Delphi RadioButton состоит из круглого окошка и текстовой строки. В окошке появляется отметка выбора данного компонента, текстовая строка поясняет его смысл. За изменение текстовой строки отвечает свойство Caption. Основное же свойство компонента Delphi RadioButton - Checked (т.е. "выбрано") типа Boolean, доступное как для чтения, так и для записи. У выбранного компонента свойство Checked равно True.

На данной Форме    RadioButton1.Checked = True;    RadioButton2.Checked = False;    RadioButton13Checked = False; Для выбора, например, компонента RadioButton2 достаточно написать    RadioButton2.Checked := True;// отметка с RadioButton1 будет снята автоматически. Для снятия выбора нужно в программе написать    RadioButton1.Checked := False;// теперь ни один из компонентов не выбран. Вручную этого достичь невозможно.

   Основным событием компонента Delphi RadioButton является, естественно, OnClick, то есть щелчок мышкой. В этот момент могут быть выполнены процедуры, соответствующие выбору этого компонента. ПРИМЕР. Пусть у нас есть несколько компонентов RadioButton, и пользователь производит выбор одного из них. Затем, при нажатии кнопки, нужно проанализировать выбор пользователя, и выполнить соответствующую этому выбору процедуру. Будем исходить из предположения, что компоненты имеют имена RadioButton1, 2, 3 и так далее, а соответствующие процедуры proc1, 2, 3 и так далее.    Введём глобальную переменную, принимающую значение 1, 2, 3 и так далее, соответствующее выбранному компоненту RadioButton. Присваивать значение будем по событию OnClick. Соответственно, потребуется столько обработчиков этого события, сколько компонентов RadioButton у нас в программе.    Однако, это затратно и утомительно, плодить множество аналогичных обработчиков. Ведь, использовав параметр Sender, определённый в обработчике события OnClick, можно обойтись и одним обработчиком! Только нужно выбрать его как обработчик события OnClick для всех компонентов RadioButton. Получается такая программа, состоящая из двух процедур: var   Form1: TForm1;   V: Integer; implementation {$R *.dfm} procedure TForm1.RadioButton1Click(Sender: TObject); begin with (Sender as TRadioButton) do   V:=StrToInt(copy(Name, 12, Length(Name)-11)); end; procedure TForm1.Button1Click(Sender: TObject); begin   case V of    1: proc1;    2: proc2;    3: proc3;    4: proc4;    5: proc5;    6: proc6;   end; end;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]