Компонент 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;
Особенно удобно использовать его, если установлен режим плоской панели – в этом случае прозрачен не только фон самой панели, но и всех кнопок на ней.