196______________________________________________Глава 3

3.5.4 Инструментальные панели — компоненты ToolBar
и PageScroller

Как уже говорилось выше, инструментальные панели можно создавать и не
прибегая к специальным компонентам. Можно поместить на форму простейшую
панель Panel, разместить на ней быстрые кнопки SpeedButton и панель готова.
Остается только написать для кнопок соответствующий код. Но специализирован-
ный компонент ToolBar, который мы рассмотрим в этом разделе, дает, конечно,
дополнительные возможности для построения инструментальных панелей. При-
мер панели, построенной на основе этого компонента, приведен на рис. 3.31.

Пример инструментальной панели ToolBar                      вЯЙ':^?"'?^^'^!------1:l:;r:11i4::::ll::^

ЩМ,Ш^^~^'М}

^ Экран-- , ;,;^:;1;:1:

^г|^1,»' ЩаблонД^Я :1
з—'!^ ШабяоиЗ^ЭДу;' ::

!»/ -ДЁТоСоярйненме

Если вы поместите компонент ToolBar на форму, то по умолчанию он располо-
жится вверху, поскольку его свойство Align по умолчанию равно alTop. О свойстве
Align вы узнаете в подробностях в разделе 4.2. Если вы хотите, чтобы панель рас-
полагалась иначе, установите Align = aINone, после чего можете придать панели
любую форму и расположить ее в любом месте.

Занесение компонентов на панель ToolBar можно, в принципе, осуществлять
обычным способом — переносом их из палитры библиотеки. Но для занесения кно-
пок имеется и более простой вариант. Щелкните на ToolBar правой кнопкой
мыши и выберите из всплывшего меню команду New Button. На форме появится
очередная кнопка — объект типа TToolButton. Это не совсем обычная кнопка, так
как в дальнейшем вы увидите, что внешне она может не походить на кнопку. Ее
вид и поведение определяется ее свойством Style, значение которого по умолчанию
равно tbsButton — кнопка. Другие возможные стили мы рассмотрим позднее. А
как кнопка этот объект очень похож на кнопку SpeedButton. Только изображение
на кнопке определяется не свойством Glyph, а свойством Imagelndex. Оно опреде-
ляет индекс изображения, хранящегося во внешнем компоненте ImageList (см.
раздел 3.7.3). Указание на этот компонент может задаваться такими свойствами
компонента ToolBar, как Images, Disabledlmages (указывает на список изображе-
ний кнопок в недоступном состоянии) и Hotlmages (указывает на список изобра-
жений кнопок в моменты, когда над ними перемещается курсор мыши).

Свойство Menultem позволяет задать раздел главного или контекстного меню,
который дублируется данной кнопкой.

Свойство Wrap, установленное в true, приводит к тому, что после этой кнопки
ряд кнопок на панели прерывается и следующие кнопки размещаются в следую-
щем ряду.

Теперь вернемся к свойству Style, задающему стиль кнопки. Значение Style =
tbsCheck определяет, что после щелчка пользователя на кнопке она остается в на-
жатом состоянии. Повторный щелчок на кнопке возвращает ее в отжатое состоя-
ние. Поведение такой кнопки подобно кнопкам SpeedButton и определяется ана-
логичными свойствами AllowAHUp и Down (см. раздел 3.3.3). Если при этом в не-
скольких кнопках установлено свойство Grouped = true, то эти кнопки образуют
группу, из которой только одна кнопка может находиться в нажатом состоянии.

Значение Style = tbsDropDown соответствует кнопке в виде выпадающего спи-
ска. Этот стиль удобен для воспроизведения выпадающего меню. Если для подоб-