Главная » Уроки по ООП » Урок 13. Кнопочные компоненты, переключатели

Урок 13. Кнопочные компоненты, переключатели

Кнопки Button (на стр.Standart) и BitBtn (на стр.Additional)

В надписях (Caption) кнопок можно предусматривать использование клавиш ускоренного доступа, выделяя для этого один из символов надписи. Перед символом, который должен соответствовать клавише ускоренного доступа, ставится символ амперсанта «&». Этот символ не появляется в надписи, а следующий за ним символ оказывается подчеркнутым. Тогда пользователь может вместо щелчка на кнопке нажать в любой момент клавишу Alt совместно с клавишей выделенного символа.

Задание 1. Установите на форму кнопку, свойство Caption = &Выполнить. На кнопке эта надпись будет иметь вид «Выполнить». В обработчике события нажатия кнопки впишите следующий текст:
ShowMessage(‘Нажали кнопку’);
Запустите программу и нажмите клавиши Alt-В.

Свойство Cancel, если его установить в true, определяет, что нажатие пользователем клавиши Esc будет эквивалентно нажатию на данную кнопку.

Задание 2. Установите на форму кнопку, назовите ее «Выход». В обработчике события onClick напишите код:
Form1.close;
Свойство Cancel установите = True. Запустите программу и нажмите клавишу Esc.
Как поведет себя программа?

Свойство Default, если его установить в true, определяет, что нажатие пользователем клавиши ввода Enter будет эквивалентно нажатию на данную кнопку, даже если данная кнопка в этот момент не находится в фокусе. Правда, если в момент нажатия Enter в фокусе находится другая кнопка, то все-таки сработает именно кнопка в фокусе.

Особенности кнопки с пиктограммой BitBtn (на стр.Additional)

При нажатии кнопки с многоточием в строке свойства Glyph в Инспекторе Объектов вызывается окно, нажав в нем кнопку Load, вы перейдете в обычное окно открытия файла рисунка и можете выбрать файл битовой матрицы .bmp, содержащий желаемое изображение.
Имеется возможность указать тип кнопки в свойстве Kind, при этом будет меняться картинка и надпись. В свойстве Caption автоматически настраиваются горячие кнопки и соответствующие действия.

Расположение изображения и надписи на кнопке: свойства

Margin Если = -1 (значение по умолчанию), то изображение и надпись размещаются в центре кнопки. Если же Margin > 0, то в зависимости от значения Layout изображение и надпись смещаются к той или иной кромке кнопки, отступая от нее на число пикселей, заданное значением Margin.
Layout

Положение изображения по отношению к надписи.
blGlyphLeft (слева, по умолчанию), blGlyphRight (справа), blGlyphТор (вверху), blGlyphBottom (внизу)

Spacing

задает число пикселей, разделяющих изображение и надпись на поверхности кнопки. По умолчанию Spacing = 4. Если задать Spacing = 0, изображение и надпись будут размещены вплотную друг к другу. Если задать Spacing = -1, то текст появится посередине между изображением и краем кнопки.

Задание 3: установите на форму 5 кнопок BitBtn инастройте изображения на кнопках следующим образом:

Кнопка с фиксацией SpeedButton

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

Свойство AllowAllUp - разрешение отжатого состояния всех кнопок группы.
Если свойство Down=true, то исходное состояние кнопки — нажатое.

Если GroupIndex=0, то кнопка ведет себя так же, как Button и BitBtn. При нажатии пользователем кнопки она погружается, а при отпускании возвращается в нормальное состояние. В этом случае свойства AllowAllUp и Down не влияют на поведение кнопки.
Если Grouplndex>0 и AllowAllUp=true, то кнопка при щелчке пользователя на ней погружается и остается в нажатом состоянии. При повторном щелчке пользователя на кнопке она освобождается и переходит в нормальное состояние.
Если у группы кнопок GroupIndex имеет одинаковое ненулевое значение, то они образуют группу взаимосвязанных кнопок, из которых нажатой может быть только одна.
Если AllowAllUp=true, то при щелчке по нажатой кнопке она освободится (т.е. все кнопки группы будут отжаты).
Если AllowAllUp=false, то щелчок на нажатой кнопке не приведет к изменению вида кнопки.
Состояние кнопки во время выполнения можно определить по значению свойства Down: если значение равно true, то кнопка нажата. Во время события OnClick значение Down уже равно тому состоянию, которое примет кнопка в результате щелчка на ней.

Задание 4. Установите на форме три кнопки SpeedButton. Дайте им соответствующие названия, настройте свойство Font так, чтобы текст на кнопках выглядел как на рисунке.

Установите свойство GroupIndex=1 для всех трех кнопок. У первой кнопки установите свойство Down=True. Запустите программу и посмотрите, как ведут себя кнопки.

Задание 5. Измените свойства кнопок так, чтобы кнопки нажимались и оставались нажатыми до тех пор, пока на них не нажмут второй раз, независимо друг от друга.

Индикаторы с флажком CheckBox (на стр.Standart)

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

При каждом щелчке пользователя на индикаторе его состояние изменяется, при этом изменяется значение свойства  State:

cbChecked

Выделение (появление черной галочки)

cbGrayed

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

cbUnchecked

Не выделенное (пустое окно индикатора)

Если свойство AllowGrayed=true, то допускаются три возможных состояния.
Если свойство AllowGrayed=false, то допускается только два состояния: выделенное и не выделенное.
Проверять состояние индикатора можно по значению свойства Checked.
Если Checked=true, то индикатор выбран, т.е. State = cbChecked.
Если Checked=false, то State=cbUnchecked или cbGrayed.

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

 

Радиокнопка RadioButton. Свойства:

Caption

надпись, появляющуюся около кнопки.

Alignment

с какой стороны от кнопки появится надпись:
taLeftJustify — слева,
taRightJustify — справа (это значение принято по умолчанию).

Checked

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

Компонент RadioGroup (на стр.Standart) - панель группы радиокнопок.

Это панель, которая может содержать регулярно расположенные столбцами и строками радиокнопки.


Columns

Количество столбцов радиокнопок (не более 17).

ItemIndex

Индекс выбранной кнопки (какая кнопка выбрана пользователем). Индексы начинаются с 0. По умолчанию ItemIndex = -1, что означает отсутствие выбранной кнопки.

Определить, какая радиокнопка выбрана в RadioGroup, можно так:

case RadioGroup1.ItemIndex of
0: ShowMessage('Выбран первый элемент');
1: ShowMessage('Выбран второй элемент');
2: ShowMessage('Выбран третий элемент');
end;

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

Узнать значение выделенного элемента можно следующим образом (выводим значение в Label):

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

 

Панель GroupBox

Выглядит на форме так же, как RadioGroup, и надпись в ее верхнем левом углу также определяется свойством Caption. Назначение панели — служить контейнером для других управляющих элементов, в частности, для радиокнопок RadioButton.

Задание 7: установите на форму компоненты, показанные на рисунке, и настройте их внешний вид, используя свойства, изученные выше.

 

Составитель: Салий Н.А.

Яндекс.Метрика
Сайт создан в системе uCoz