- •Глава 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.2. Кнопка с рисунком BitBtn
Кнопка с рисунком
BitBtn
(вкладка Additional)
отличается от стандартной кнопки Button
тем, что дополнительно к стандартному
заголовку имеет возможность отображения
растрового рисунка (глифа). Выводимый
рисунок может содержать до трех отдельных
изображений. Какое именно изображение
выводится на кнопке, зависит от текущего
состояния кнопки: 1-е изображение
отображается, если кнопка не нажата (по
умолчанию); 2-е изображение отображается,
если кнопка не активна и не может быть
выбрана; 3-е изображение отображается,
если кнопка нажата (выполнен щелчок).
Как и в кнопках Button, программист не может управлять цветом поверхности кнопки, но в отличие от Button можно менять цвет надписи на ней. С помощью свойства Default кнопку можно сделать кнопкой, выбранной по умолчанию, – в этом случае нажатие клавиши <Enter> автоматически вызывает обработчик ее события OnClick. Основные свойства компонента приведены в табл. 4.8.
Таблица 4.8. Свойства компонента BitBtn
|
Свойство |
Описание |
|
Glyph |
Определяет
рисунок, связанный с кнопкой. По
умолчанию значение None,
то есть кнопка не содержит рисунка.
Указать путь к файлу с изображением
можно, нажав на кнопку
|
|
Kind |
Определяет
разновидность кнопки. По умолчанию
bkCustom,
т.е. кнопка имеет выбранное изображение,
первоначально изображение отсутствует
и его нужно загружать дополнительно.
Для задания вида кнопки могут
использоваться следующие константы
(при выборе вида кнопки на ней
отображается соответствующий глиф):
bkCustom
|
Окончание табл. 4.8
|
|
|
|
Layout |
Свойство управляет расположением изображения на поверхности кнопки относительно надписи:
|
|
Margin |
Определяет расстояние в пикселях от края кнопки до рисунка |
|
NumGlyphs |
Определяет количество растровых изображений – значение от 1 до 3 |
|
Spacing |
Определяет расстояние в пикселях от рисунка до надписи на кнопке |
Некоторые константы видов кнопок определяют не только рисунок у кнопки, но и действия, выполняемые этой кнопкой (табл. 4.9).
Таблица 4.9. Соответствие вида кнопки и выполняемого действия
|
Кнопка (свойство Kind) |
Свойство |
Значение ModalResult |
|
bkYes |
Default=True (нажатие <Enter>) |
mrYes (6) |
|
bkNo |
Cancel=True (нажатие <Esc>) |
mrNo (7) |
|
bkOk |
Default=True (нажатие <Enter>) |
mrOk (1) |
|
bkClose |
При нажатии на кнопку форма автоматически закрывается |
|
|
mbCancel |
Cancel=True (нажатие <Esc>) |
mrCancel (2) |
При использовании
нескольких изображений они должны быть
подготовлены и сохранены в файле
растрового формата BMP. Подготовить
рисунок для кнопки можно, например, с
помощью графического редактора Image
Editor (меню Tools),
входящего в состав Delphi.
При разработке собственных растровых
изображений для использования на кнопках
следует учесть, что изображения должны
меняться при изменении состояния кнопки.
В соответствии с этим разрабатывается
до 4 изображений, расположенных по
горизонтали в виде одного длинного
растра. Например, стандартный размер
изображения для размещения на кнопке
равен 16
16
пикселей. Если создаются 3 изображения,
размер растра должен составлять 48
16.
Количество изображений в растре задается
свойством NumGlyphs.
Если каждое изображение квадратное, и
длина растра делится без остатка на его
высоту, Delphi автоматически
распознает количество изображений.
Если задано только одно изображение,
оно меняется автоматически: в состоянии
«кнопка нажата» изображение смещается
на один пиксель вправо и вниз, а в
состоянии «кнопка недоступна» все
цвета, кроме черного, меняются на
светло-серый, а черный – на белый, что
обеспечивает эффект «вдавленности»
изображения. Следует также учесть, что
самый левый нижний пиксель растра
определяет цвет прозрачности: на кнопке
этот цвет будет заменяться цветом
поверхности кнопки.
