
- •Введение
- •Компонент TToolBar
- •Кнопки
- •Значки на кнопках
- •Надписи на кнопках
- •Разделительные линии
- •Кнопки-переключатели
- •Обработка нажатий кнопок
- •Подсказки к кнопкам
- •Управление видимостью панели кнопок
- •Компонент TControlBar
- •Механизм причаливания
- •Список команд. Компонент TActionList.
- •Создание списка команд
- •Команды. Компонент TAction.
- •Caption
- •Привязка команд
- •Реакция на команды
- •Задания к лабораторной работе
- •Вопросы к лабораторной работе
- •Справочные таблицы
- •Приложение А
- •Приложение Б

Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»
Лабораторная работа № 19 Проектирование пользовательского интерфейса.
Создание панели инструментов
Введение
Влабораторной работе рассмотрены компоненты TToolBar, TToolButton, TControlBar, TActionList, TAction. Приведены примеры применения этих компонентов. Рассмотрена технология «причаливания» компонентов, приведен пример.
Вэтой лабораторной работе продолжим изучать компоненты для создания пользовательского интерфейса программы. На очереди панель инструментов. Продолжим модифицировать программу, которую мы начали в прошлой лабораторной работе. Скопируйте программу в другой каталог и загрузите эту копию в Delphi.
Панель инструментов (ToolBar) – это расположенная под главным меню панель с кнопками, раскрывающимися списками, переключателями и другими компонентами. Компоненты панели инструментов, как правило, дублируют часто используемые команды меню.
Компонент TToolBar
Для создания панели инструментов в среде Delphi существует компонент TToolBar , расположенный в палитре компонентов на вкладке Win32 (рисунок 1).
Рисунок 1 – Компонент TToolBar в палитре компонентов
Активизируйте форму и поместите на нее компонент TToolBar (tbStandart) (рисунок
2).
В окне свойств установите свойство AutoSize в значение True. После этого панель инструментов будет автоматически подгонять свои размеры в зависимости от размеров и количества размещенных на ней компонентов.
Рисунок 2 – Вид формы после добавления компонента TToolBar
Наиболее важные свойства и события компонента TToolBar приведены в таблице 1.

Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»
Таблица 1 – Основные свойства и события компонента TToolBar
Свойство Описание
AutoSize |
Если равно значению True, то панель автоматически |
||||
|
изменяет свою высоту в зависимости от размеров |
||||
BorderWidth |
Величина отступа от границ компонента до кнопок. |
||||
ButtonWidth |
Ширина кнопок на панели инструментов. |
|
|||
ButtonHeight |
Высота кнопок на панели инструментов. |
|
|||
Customizable |
Если равно значению True, то пользователь во время |
||||
|
работы программы имеет возможность управлять |
||||
DisabledImages |
Список значков, отображаемых на недоступных кнопках. |
||||
|
Свойство DisabledImages используется совместно со |
||||
DockSite |
Определяет, используется ли панель инструментов для |
||||
|
стыковки других компонентов. |
|
|||
EdgeBorders |
Вложенные свойства ebLeft, ebTop, ebRight и ebBottom |
||||
|
определяют видимость соответственно левой, верхней, |
||||
EdgeInner |
Внутренний скос рельефной рамки: |
|
|||
esNone – скос отсутствует; |
|
||||
|
|
||||
|
esLowered – скос внутрь; |
|
|||
EdgeOuter |
Внешний скос рельефной рамки: |
|
|||
esNone – скос отсутствует; |
|
||||
|
|
||||
|
esLowered – скос внутрь; |
|
|||
Flat |
Если равно значению True, то все кнопки, находящиеся |
||||
на панели инструментов, не имеют рельефных границ. |
|||||
|
|||||
|
Рельефные |
границы |
появляются при |
наведении |
|
HideClippedButtons |
Если равно значению True, то кнопки, не уместившиеся |
||||
на панели целиком, не показываются вообще. |
|||||
|
|||||
HotImages |
Список значков, которые отображаются на кнопках при |
||||
наведении на них указателя мыши. Свойство HotImages |
|||||
|
|||||
|
используется совместно со свойством ImageIndex |
||||
Images |
Список значков, которые отображаются |
на кнопках. |
|||
Свойство Images используется совместно со свойством |
|||||
|
|||||
|
ImageIndex компонента TToolButton |
|
|||
Indent |
Отступ от края панели до первой кнопки. |
|
|||
|
|
|
|
||
List |
Если равно |
значению |
True, то надписи |
на кнопках |
|
отображаются справа от значков. Иначе надписи |
|||||
|
|||||
|
отображаются под значками |
|
|||
Menu |
Ссылка на компонент TMainMenu. Установка значения |
||||
этого свойства приводит к тому, что панель |
|||||
|
|||||
|
инструментов выглядит как строка главного меню |
||||
ShowCaptions |
Определяет, отображаются ли надписи на кнопках. Если |
||||
установлено значение False, то на кнопках отображаются |
|||||
|
|||||
|
только значки |
|
|

Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»
Свойство |
Описание |
|
|
|
|
|
|
|
|
||||
ShowHint |
Разрешает (значение True) |
или запрещает (значение |
||||
False) показ высплывающих подсказок для кнопок |
||||||
|
||||||
Transparent |
Если равно значению True, то фон панели инструментов |
|||||
является прозрачным. |
|
|
||||
|
|
|
||||
Wrapable |
Включает |
автоматический |
перенос |
невместившихся |
||
кнопок панели инструментов на новую строку. Если |
||||||
|
||||||
|
равно значению False то перенос кнопок регулируется с |
|||||
OnAdvancedCustomDraw |
Происходит до и после рисования панели инструментов |
|||||
на экране. |
|
|
|
|
||
|
|
|
|
|
||
OnAdvancedCustomDrawButton |
Происходит до и после рисования каждой кнопки панели |
|||||
|
инструментов на экране. |
|
|
|||
OnCustomDraw |
Происходит |
при |
рисовании |
панели |
инструментов на |
|
экране. |
|
|
|
|
||
|
|
|
|
|
||
OnCustomDrawButton |
Происходит |
при |
рисовании |
каждой |
кнопки панели |
|
инструментов на экране. |
|
|
||||
|
|
|
||||
OnGetSiteInfo |
Происходит, когда у компонента запрашивается место |
|||||
для стыковки. |
|
|
|
|||
|
|
|
|
|||
|
|
|
|
|
|
Кнопки
Кнопки панели инструментов представлены компонентами TToolButton. Как и компонент TMenuItem (см. лабораторную работу №18) компонент TToolButton отсутствует в палитре компонентов, поскольку он не является самостоятельным компонентом, а создается и управляется из компонента TToolBar. Важнейшие свойства и события компонента TToolButton приведены в таблице 2.
Для добавления кнопки вызовите контекстное меню компонента tbStandart и выберите команду «New Button» (рисунок 3).
Рисунок 3 – Создание кнопки на панели инструментов
На панели инструментов появится кнопка, свойства которой будут тут же показаны в окне свойств. Дайте компоненту имя tbnNew.

Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»
Аналогичным образом создайте еще четыре кнопки с программными идентификаторами (свойство Name) tbnOpen, tbnSave (рисунок 4).
Рисунок 4 – Вид формы после добавления кнопок на панель инструментов
Подготовительная работа завершена, список кнопок готов. На следующем шаге мы назначим кнопкам значки, но прежде перечислим важнейшие свойства компонента TToolButton, с которыми нам придется дальше работать (таблица 2).
Таблица 2 – Важнейшие свойства и события компонента TToolButton
Свойство Описание
Action |
Команда, хранящаяся в компоненте ActionList и |
|
выполняемая при нажатии кнопки |
AllowAllUp |
Разрешает всем кнопкам одной группы находиться в |
|
отжатом состоянии. |
AutoSize |
Включает режим автоматического подбора размеров |
|
кнопки в зависимости от размеров значка и надписи. |
Caption |
Надпись на кнопке. |
Down |
Если равно True, то кнопка рисуется нажатой. |
DropDownMenu |
Выпадающее меню, которое появляется при нажатии |
|
кнопки. Это свойство используется, если свойство Style |
Grouped |
Определяет, принадлежит ли кнопка группе |
|
взаимоисключающих переключателей. |
ImageIndex |
Номер значка в списке Images компонента ToolBar. |
Indeterminate |
Если равно True, то кнопка имеет неопределенное |
|
состояние и рисуется поблекшей. |
Marked |
Если равно значению True, то кнопка подсвечивается |
|
цветом выделенных элементов (стандартно – синим |
MenuItem |
Пункт меню, с которым ассоциирована кнопка. При |
|
установке этого свойства из соответствующего пункта |