Иллюстрированный самоучитель по Delphi 7 для профессионалов

Компонент TToolBar

Возможность создать панель инструментов появилась у разработчика давно, начиная с первых версий Delphi. Тогда она была реализована с помощью сочетания компонентов TPanel и TSpeedButton. Так можно было поступить и сейчас; но панель инструментов получила развитие с появлением стандартного элемента управления TToolBar, который объединяет расположенные на нем кнопки и другие элементы управления и централизованно управляет ими.

Примечание
Для других элементов управления, помещаемых на TToolBar, создается невидимая кнопка, обеспечивающая взаимодействие между ними и панелью. Но не со всеми из них "все гладко". Например, компонент TSpinEdit масштабируется и позиционируется неправильно. Вместо него следует применять пару TEdit+TUpDown
.

Все кнопки (класс TToolButton) на панели инструментов имеют одинаковый размер, задаваемый свойствами:

property ButtonWidth: Integer;
property ButtonHeight: Integer;

Но эти свойства срабатывают только тогда, когда свойство:

property ShowCaptions: Boolean;

Имеет значение False. Оно отвечает за видимость надписей на кнопках компонента. И если эти надписи должны быть видимы, то размер кнопок автоматически подстраивается под размер кнопки с самым длинным текстом.

На каждой кнопке могут отображаться два ее атрибута – текст (заголовок кнопки, свойство Caption) и картинка. Показ текста можно запретить установкой свойства ShowCaptions В значение False.

Панель инструментов тяжело себе представить без украшающих ее картинок. У компонента TToolBar целых три свойства, ссылающихся на списки картинок:

property Images: TCustomlmageList;
property Disabledlmages: TCustomlmageList;
property Hotlmages: TCustomlmageList;

В обычном состоянии на кнопках отображаются картинки из набора, указанного свойством images. Если кнопка неактивна (свойство Enabled обращено в False), надпись на кнопке отображается серым цветом и на ней показывается картинка из свойства Disabledlmages.

Если свойство:

property Flat: Boolean;

Установлено в значение True, внешний вид панели инструментов становится более "модным" – плоским. В этом случае границы кнопок не видны, и все они выглядят как набор надписей и рисунков на единой плоской панели. Границы становятся видны, только когда над кнопкой находится указатель мыши. Можно при этом изменить и внешний вид кнопки. Если задано значение свойства Hotlmages, то на текущей кнопке обычная картинка из images меняется на картинку из Hotlmages. Посмотрите, например, на панель Microsoft Internet Explorer 4 и старшей версии – там все картинки на кнопках серые, но кнопка, к которой подведен указатель мыши, становится цветной.

Примечание
Возможность сделать панель инструментов плоской появилась в версии 4.70 библиотеки ComCtl32.dll. Распространяя приложение, не забудьте поставить с дистрибутивами эту библиотеку нужной версии
.

Текст и картинка на кнопке могут располагаться друг относительно друга двумя способами, в зависимости от значения свойства List. Если свойство List равно значению False (установка по умолчанию), то картинка располагается сверху, текст – снизу. В противном случае вы увидите текст справа от картинки.

Панели инструментов – это контейнеры, но и они часто располагаются на контейнерах – компонентах TCoolBar и TControlBar. Те, как правило, имеют свою фоновую картинку, и располагающийся сверху компонент TToolBar можно сделать прозрачным. За это отвечает свойство:

property Transparent: Boolean;

Особенно удобно использовать его, если установлен режим плоской панели – в этом случае прозрачен не только фон самой панели, но и всех кнопок на ней.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.