Переключатели, списки и контейнеры

 

Переключатели (флажки) позволяют выбрать какое-либо значение из определенного множества. Они могут находиться во включенном (установленном) или выключенном (сброшенном) состояниях. Анализ состояния переключателя позволяет программисту выполнять реализовывать те или иные фрагменты программного кода (например, алгоритмы с ветвлением).

 

 

Компонент TCheckBox – независимый переключатель (флажок).

Переключатель с независимой фиксацией представлен компонентами класса TCheckBox. Этот переключатель действует независимо от других подобных переключателей. Данный компонент находится на вкладке Standard и выбирается щелчком мыши по кнопке .

Для определения состояния переключателя используется свойство Сhecked.

property Checked: Boolean;

По умолчанию оно имеет значение false, и переключатель выключен.

Пользователь может переключать флажок щелчком мыши. Если флажок выключен, то после щелчка он становится включенным, и наоборот. При этом соответственно изменяется значение свойства Checked. Флажок можно пе­реключить и с помощью клавиши «Пробел», когда компонент TCheckBox находится в фокусе ввода, и вокруг его заголовка имеется черный пунктирный прямоугольник.

Пример. Программное управление независимым переключателем (флажком).

CheckBox1.Checked := true;

CheckBox2.Checked := false;

Флажок CheckBox1 устанавливается в выбранное состояние, а флажок CheckBox2 – в невыбранное состояние.

Сделать флажок недоступным для изменения (заблокировать) можно путем установки свойству Enabled значения False:

CheckBox1.Enabled := false;

После перехода переключателя в заблокированный режим он сохраняет свое состояние, которое было до выполнения блокировки. То есть неактивный переключатель может находиться во включенном и в выключенном состояниях.

Кроме двух состояний (включен – выключен) переключатель может иметь еще и третье состояние – запрещенное, или отмененное. Наличием или отсутствием отмененного состояния управляет свойство AllowGrayed.

property AllowGrayed: Boolean;

Если это свойство имеет значение true, то при щелчке мышью переключатель циклически переключается между тремя состояниями: включенный, выключенный и отмененный. В отмененном состоянии переключатель выделяется серым цветом, а в прямоугольнике находится знак галочки.

Для анализа и установки одного из трех состояний флажка служит свойство State.

property State: TCheckBoxState;

Оно может принимать следующие значения:

cbChecked — переключатель включен;

cbUnchecked — переключатель не включен;

cbGrayed — переключатель запрещен.

Для добавления или изменения надписи рядом с переключателем используется свойство Caption.

property Caption: TCaption;

Положение текста относительно переключателя определяется свойством Alignment.

property Alignment: TLeftRight;

Может принимать следующие значения:

taRightJustify – текст расположен справа от переключателя;

taLeftJustify – текст расположен слева от переключателя;

При изменении состояния переключателя возникает событие OnClick независимо от того, в какое состояние переходит переключатель. В обработчике события OnClick обычно располагаются операторы, выполняющие проверку состояния переключателя и осуществляющие требуемые действия.

Пример. Процедура обработки события выбора независимого переключателя.

procedure TForml.CheckBox3Click(Sender: TObject);

Begin

case CheckBox3.State of

cbUnchecked: CheckBox3.Caption := 'Переключатель

включен';

cbChecked: CheckBox3. Caption := "Переключатель

не включен;

cbGrayed: CheckBox3.Caption := 'Переключатель

запрещен';

End;

End;

Переключатель CheckBox3 при его переключении отображает в заголовке своё состояние.

На рис. 15 приведен пример компонентов класса TCheckBox в различных состояниях. Переключатель «Опция 1» находится в состоянии cbUnchecked, «Опция 2» – cbChecked, «Опция 3» – cbGrayed.

 

 

Рис. 15. Компонент TCheckBox в различных состояниях

 

Компонент TRadioButton – зависимый переключатель

Переключатели с зависимой фиксацией представлены компонентами класса TRadioButton, их также называют кнопками выбора. Данный компонент находится на вкладке Standard и выбирается щелчком мыши по кнопке .

В отличие от компонента TCheckBox компоненты TRadioButton представляют собой переключатели, предназначенные для выбора одного из нескольких взаимоисключающих решений. На форму (точнее, в компонент-контейнер) помещается по меньшей мере , два таких компонента. Они могут иметь только два состояния, определяемых свойством Checked. Если в одном компоненте это свойство принимает значение true, во всех других компонентах, расположенных в том же контейнере, свойства Checked принимают значение false.

Кроме свойства Checked, данный компонент обладает свойствами Caption и Alignment, которые аналогичны одноименным свойствам компонента TCheckBox.

При работе с группой один из зависимых переключателей рекомендуется делать выбранным, что можно выполнить при проектировании формы или в процессе выполнения приложения.

На рис. 16 приведен пример двух компонентов TRadioButton, размещенных на одной форме. В данный момент выбранным является «Переключатель 1».

 

 

Рис. 16. Пример взаимосвязанных компонентов TRadioButton

 

Компонент TRadioGroup – группа зависимых переключателей

Компонент класса TRadioGroup представляет собой специальный контейнер, предназначенный для размещения зависимых переключателей класса TRadioButton. Каждый размещаемый в нем переключатель помещается в специальный список Items и доступен по индексу, что упрощает обслуживание группы.

Данный компонент находится на вкладке Standard и выбирается щелчком мыши по кнопке .

У данного компонента может быть заголовок, текст которого хранится в свойстве Caption.

property Caption: TCaption;

Свойство компонента Columns определяет количество столбцов переключателей.

property Columns: Integer;

Свойство ItemIndex содержит индекс установленного переключателя.

property ItemIndex: Integer;

Если переключатель не выбран, то свойство содержит -1. Если выбран первый перключатель, то свойство равно 0, второй – равно 1 и т.д.

Свойство Items содержит список заголовков элементов (Добавление/удаление элементов осуществляется добавлением / удалением строк списка Items).

property Items: TStrings;

После размещения компонента на форме он пуст. Для создания хотя бы одного переключателя следует раскрыть редактор списка Items в инспекторе объектов и ввести хотя бы одну строку (рис. 17).

 

 

Рис. 17. Редактор списка Items компонента RadioGroup

 

Строки Items используются как поясняющие надписи справа от переключателей, а их количество определяет количество переключателей в группе.

Также можно задать число и названия переключателей программно с помощью метода Add.

function Add(const S: string): Integer;

В качестве параметра S выступает надпись, связанная с элементом.

Пример. Создать список из 3-х переключателей и сделать первый активным.

procedure TForml.FormCreate(Sender: TObject) ;

Begin

RadioGroup1.Items.Clear;

RadioGroup1.Items.Add('Item1');

RadioGroupl.Items.Add('Item2');

RadioGroupl.Items.Add('Item3');

RadioGroup1.ItemIndex:=0;

End;

Метод Clear, вызванный в самом начале процедуры, очищает элементы группы переключателей, если они там были. В противном случае, создаваемые переключатели добавятся к уже существующим.

После создания компонента ItemIndex равен -1, то есть ни один из компонентов не выбран. Можно изменить это свойство программно или в инспекторе объектов (не следует забывать, что нумерация начинается с 0). Также свойство ItemIndex позволяет осуществить анализ выбора пользователя, например:

case RadioGroup1.ItemIndex of

0: …; //Выбран 1-й переключатель

1: …; //Выбран 2-й переключатель

Else

… //Не выбран ни один переключатель

End;

На рис. 18 приведен пример компонента TRadioGroup.

 

Рис. 18. Пример компонента TRadioGroup

Компонент TCheckListBox – группа независимых переключателей

Компоненты класса TCheckListBox группируют независимые переключатели, позволяя обратиться к любому из них по индексу.

Компонент TCheckListBox находится на вкладке Additional и выбирается щелчком мыши по кнопке .

Чтобы вставить в компонент группу независимых переключателей следует раскрыть в редакторе его свойство Items и ввести одну или несколько строк (аналогично компоненту TRadioGroup). Каждая из них будет соответствовать поясняющей надписи справа от переключателя. Также можно добавлять элементы в список программно с помощью метода Add.

Свойства компонента в целом похожи на свойства компонентов классов TCheckBox и TRadioGroup.

Свойство AllowGrayed разрешает / запрещает использовать в переключателях третье состояние cbGrayed.

property AllowGrayed: Boolean;

Свойство Checked позволяет проверить состояние переключателей.

property Checked[Index: Integer]: Boolean;

Данное свойство содержит для переключателя с индексом Index значение, идентифицирующее выбор пользователя. Состояния cbUnchecked и cbGrayed отражаются как False.

Свойство ItemIndex содержит индекс выбранной опции.

property ItemIndex: Integer;

Как и в компоненте RadioGroup индексация начинается с нуля.

Свойство Selected содержит значение true, если установлен флажок с индексом Index.

property Selected[Index: Integer]: Boolean;

Свойство Sorted сортирует по алфавиту подписи к флажкам.

property Sorted: Boolean;

Свойство State содержит состояние определенного переключателя.

property State[Index: Integer]: TCheckBoxState;

Данное свойство содержит состояние переключателя с индексом Index: cbUnchecked – нет; cbChecked – да; cbGrayed – не совсем да.

На рис. 19 приведен пример компонента TCheckListBox.

 

 

Рис. 19. Пример компонента TCheckListBox

 

Компонент TListBox – список выбора

Компонент ListBox представляет собой стандартный для Windows список выбора, с помощью которого пользователь может выбрать один или несколько пунктов.

В компоненте предусмотрена возможность программной прорисовки элементов, поэтому список может содержать не только строки, но и произвольные изображения.

Компонент TListBox находится на вкладке Standard и выбирается щелчком мыши по кнопке .

Свойства компонента Columns определяет количество колонок элементов в списке.

property Columns: LongInt;

Свойство ItemIndex содержит индекс выбранного элемента (индексация начинается с нуля).

property ItemIndex: Integer;

Если в списке поддерживается множественный выбор, то данной свойство содержит элемент, имеющий фокус ввода.

Свойство Items содержит набор строк, показываемых в компоненте.

property Items: TStrings;

Свойство Multiselect разрешает / отменяет выбор нескольких элементов.

property MultiSelect: Boolean;

Свойство SelCount cодержит количество выбранных элементов.

property SelCount: Integer;

Свойство Selected содержит значение true, если выбран элемент с индексом Index.

property Selected[Index: Integer]: Boolean;

Свойство Sorted разрешает / отменяет сортировку строк в алфавитном порядке.

property Sorted: Boolean;

Свойство Style определяет стиль прорисовки элементов.

property Style: TListBoxStyle;

Может принимать следующие значения:

lbStandard – элементы рисует Windows;

lbOwnerDrawFixed – рисует программа, все элементы имеют одинаковую высоту;

lbOwnerDrawVariable – рисует программа, элементы имеют разную высоту.

На рис. 20 приведен пример компонента TListBox.

 

Рис. 20. Пример компонента TListBox

 

Компонент TComboBox – комбинированный список выбора

Комбинированный раскрывающийся список выбора представляет собой комбинацию списка TListBox и текстового поля TEdit. Поэтому большинство его свойств и методов унаследованы от этих компонентов.

Компонент TComboBox находится на вкладке Standard и выбирается щелчком мыши по кнопке .

Существует ряд модификаций этого компонента, определяемых его свойством Style:

csSimple – список всегда закрыт – для выбора элемента следует активизировать данный компонент и воспользоваться клавишами «Вверх» и «Вниз» для перемещения по списку (в остальных случаях он раскрывается после нажатия кнопки в правой части компонента);

csDropDownList – список работает в режиме выбора и его нельзя использовать для ввода новой строки;

csOwnerDrawFixed и csOwnerDrawVariable ­– используются для программной прорисовки элементов списка.

Для управления элементами списка используются практически те же самые методы, что и для компонента TListBox.

Чтобы получить доступ к содержанию выбранного элемента списка можно воспользоваться событием OnClick:

procedure TForm1.ComboBox1Click(Sender: TObject);

Begin

Label1.Caption := ComboBox1.Items[ComboBox1.ItemIndex];

End;

В данном случае выбранные элемент из списка выводится на экран при помощи свойства Caption компонента Label1.

На рис. 21 приведены примеры компонентов TComboBox.

Рис. 21. Примеры компонентов TComboBox с различным значением свойства Style

Компонент TGroupBox – панель группирования

Компонент GroupBox служит контейнером для размещения дочерних компонентов и представляет собой прямоугольное окно с рамкой и текстом в разрыве рамки. С его помощью выделяется группа управляющих элементов, объединенных по функциональному назначению.

Компонент TPanel находится на вкладке Standard и выбирается щелчком мыши по кнопке .

Важные свойства:

property Caption: TCaption;

property Height: Integer;

property Width: Integer;

В свойстве Caption хранится заголовок панели, а в свойствах Height и Width – высота и ширина панели.

На рис. 22 приведены примеры компонентов TGroupBox. Одна панель пустая, другая заполнена элементами.

 

 

Рис. 22. Примеры заполненного и пустого компонентов TGroupBox

Компонент TPanel – панель

Компонент TPanel представляет собой контейнер общего назначения. В отличие от TGroupBox он не имеет заголовка и поэтому менее удобен для функционального группирования элементов.С другой стороны, его свойство Caption отображается в виде текстовой строки и может использоваться для вывода сообщений.

Компонент TPanel находится на вкладке Standard и выбирается щелчком мыши по кнопке .

Компоненты данного класса часто помещаются на форму для того, чтобы располагать вставленные в них дочерние компоненты вдоль одной из сторон окна вне зависимости от размеров этого окна.

Свойство BorderStyle определяет стиль рамки.

property BorderStyle: TBorderStyle;

Может принимать следующие значения:

bsNone – нет рамки;

bsSingle – компонент по периметру обводится рамкой толщиной 1 пиксель.

Свойство FullRepaint разрешает / запрещает перерисовку панели и всех ее дочерних элементов при изменении размеров.

property FullRepaint: Boolean;

На рис. 23 приведены примеры компонентов TPanel. Одна панель пустая, другая заполнена элементами.

 

 

Рис. 23. Примеры заполненного и пустого компонентов TPanel

 








Дата добавления: 2017-01-29; просмотров: 2202;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.052 сек.