- •Глава 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, то есть кнопка не содержит рисунка. Указать путь к файлу с изображением можно, нажав на кнопку . Для данной кнопки в Delphi поставляет стандартный набор для кнопок картинок, расположенный в папке Program Files/Common Files/Borland Shared/Images/Buttons |
Kind |
Определяет разновидность кнопки. По умолчанию bkCustom, т.е. кнопка имеет выбранное изображение, первоначально изображение отсутствует и его нужно загружать дополнительно. Для задания вида кнопки могут использоваться следующие константы (при выборе вида кнопки на ней отображается соответствующий глиф): bkCustom , bkOk , bkCancel , bkYes |
Окончание табл. 4.8
|
, bkHelp , bkClose , bkAbort , bkRetry , bkIgnore , bkAll , bkNo . Во всех константах (кроме первой) вслед за префиксом bk следует текст, выводимый на кнопке. Этот текст может быть изменен с помощью свойства Caption |
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 изображений, расположенных по горизонтали в виде одного длинного растра. Например, стандартный размер изображения для размещения на кнопке равен 1616 пикселей. Если создаются 3 изображения, размер растра должен составлять 4816. Количество изображений в растре задается свойством NumGlyphs. Если каждое изображение квадратное, и длина растра делится без остатка на его высоту, Delphi автоматически распознает количество изображений. Если задано только одно изображение, оно меняется автоматически: в состоянии «кнопка нажата» изображение смещается на один пиксель вправо и вниз, а в состоянии «кнопка недоступна» все цвета, кроме черного, меняются на светло-серый, а черный – на белый, что обеспечивает эффект «вдавленности» изображения. Следует также учесть, что самый левый нижний пиксель растра определяет цвет прозрачности: на кнопке этот цвет будет заменяться цветом поверхности кнопки.