
- •Глава 4. Базовые компоненты интерфейса
- •4.1. Компонент форма
- •4.1.1. Основные свойства формы
- •4.1.2. Разновидности форм
- •4.1.3. События формы
- •4.1.4. Методы формы
- •4.2. Создание пиктограммы для приложения
- •4.3. Общие свойства и события визуальных компонентов
- •4.3.1. Иерархия классов Delphi
- •4.3.1. Ключевые свойства элементов управления
- •4.3.2. Виды событий для элементов управления
- •4.4. Определение принадлежности к классу и приведение типов
- •4.5. Компоненты для отображения текста
- •4.5.1. Компонент метка Label
- •4.5.2. Компонент текстовая метка StaticText
- •4.6. Кнопки
- •4.6.1. Стандартная кнопка Button
- •4.6.2. Кнопка с рисунком BitBtn
- •4.6.3. Кнопка с фиксацией SpeedButton
- •4.7. Image – компонент для работы с изображениями
- •Image1.Picture.LoadFromFile('картинка.Bmp);
- •Interface
- •Implementation
- •Interface
- •Implementation
- •4.8. Поддержка справочной службы - всплывающие подсказки
- •Контрольные вопросы
- •Лабораторная работа
4.6.3. Кнопка с фиксацией SpeedButton
Кнопки SpeedButton
(вкладка Additional)
отличаются от кнопок BitBtn
тремя аспектами: во-первых, они могут
фиксироваться в утопленном состоянии,
во-вторых, они не могут закрыть модальное
окно, в третьих, они не могут быть
кнопками, выбранными по умолчанию. Во
всем остальном они повторяют свойства
и методы кнопок BitBtn.
Обычно кнопка SpeedButton
используется без текста, но есть
возможность добавить текст, используя
свойство Caption.
Часто такие кнопки используются группами
(помещаются в группирующие элементы,
например Panel),
в которой одна кнопка находится в нажатом
состоянии. Такие группы реализованы,
например, в палитре инструментов
графического редактора Paint,
палитрах компонентов среды Delphi.
На рис. 4.7 приведен пример группы кнопок
палитры инструментов некоторого
графического редактора, в которой
активным является инструмент «карандаш».
Рис. 4.7. Пример использования группы кнопок с фиксацией
Нажатие кнопки с фиксацией может быть осуществлено только мышью или клавишей быстрого перехода, если таковая имеется.
Многие свойства кнопки с фиксацией аналогичны свойствам кнопки BitBtn (Glyph, Layout, Margin, NumGlyphs, Spacing), а свойства, определяющие ее отличительные особенности, приведены в табл. 4.10.
Таблица 4.10. Отличительные свойства кнопки SpeedButton
Свойство |
Описание |
AllowAllUp |
Свойство логического типа, определяющее, могут ли все кнопки группы быть отпущены. Если значение свойства false, то одна из кнопок группы должна быть обязательно нажата (утоплена), если значение свойства = true, то все кнопки группы могут быть отпущены. Изменение свойства у одной кнопки группы приводит к изменению соответствующим образом значения этого свойства у всех кнопок группы. Если AllowAllUp=true, то утопленная кнопка отпускается при фиксации любой другой кнопки, входящей в ту же группу; если AllowAllUp= false, кнопку можно освободить только повторным щелчком |
Down |
Свойство логического типа, служит индикатором состояния кнопки. Если имеет значение true, то кнопка утоплена. Изменить значение свойства можно лишь в случае, когда значение Grouplndex не равно 0. Свойство доступно для записи, что позволяет изменять состояние кнопки программно |
Flat |
Свойство логического типа, определяющее наличие границы у кнопки. При установке свойству значения true ее граница появляется только при позиционировании на ней указателя мыши |
Grouplndex |
Свойство целого типа, определяющее номер группы, к которой принадлежит данная кнопка. По умолчанию установлено значение 0, что означает, что кнопка не принадлежит ни к одной группе. Для фиксации кнопка должна быть отнесена к какой-либо группе кнопок (эта группа может состоять из одной фиксируемой кнопки) |
В отличие от кнопки Button свойство Glyph для SpeedButton определяет растровое изображение кнопки, которое может включать до четырех изображений, выводимых на кнопке. Выводимое изображение зависит от текущего состояния кнопки (рис. 4.8).
Н |
З |
|
||||||
|
|
|
|
|
||||
Обычная |
|
Нажатая мышью |
Рис. 4.8. Структура растрового изображения для кнопки SpeedButton
Для кнопки SpeedButton в отличие от кнопок Button и BitBtn предусмотрено событие OnDblClick, которое возникает при двойном щелчке на утопленной кнопке. Событием по умолчанию для кнопки с фиксацией является событие OnClick.