18.3.17. TCoolBar и TCoolBand - инструментальная панель и полосы для нее

Компонент TCoolBar предназначен для создания настраиваемых инструментальных панелей. Для каждого размещаемого на нем элемента TCoolBar создает объект класса TCoolBand (полоса), который может изменять свои размеры и положение в пределах границ компонента.

Следует сразу же заметить, что в отличие от TcontrolBar (страница Additional палитры компонентов) компонент TCoolBar предназначен для примерно таких же задач, но и в версии 2, где он появился впервые, и в версии б он все еще кажется “сырым”, плохо отлаженным.

Центральным свойством компонента является Bands - массив созданных в компоненте полос TCoolBand. Каждая полоса может иметь текст, пиктограмму и произвольный управляющий элемент. В отличие от ттоо1ваг или TControiBar полоса в TCoolBar всегда содержит только один интерфейсный элемент, но ничто не мешает этому элементу быть элементом-контейнером для размещения нескольких компонентов. Размещенный на полосе компонент окружен специальным окном TCoolBar и всегда стремится занять левый верхний угол полосы, при этом остальные размеры полосы изменяются так, чтобы полностью охватить элемент.

Поясним сказанное несложным примером.

Рис. 18.33. Вид окна CollBar

Свойства TCoolBand:

property Bitmap: TBitmap;

Определяет изображение, которое будет циклически повторяться по всему пространству полосы

property BorderStyle: TBorder-Style;

Определяет наличие рамки у полосы: bsNone - нет рамки; bssingle - рамка толщиной в 1 пиксель

property Break: Boolean;

Если содержит True, полоса располагается в новой строке, в противном случае - в той же строке, что и предыдущая полоса

property Control: TWinControl;

Указывает элемент, который содержит полоса

property FixedBackground: Boolean;

Запрещает/разрешает периодическое повто рение изображения Bitmap по всей поверхности полосы

property FixedSize: Boolean; 

Запрещает/разрешает изменение размеров полосы

property HorizontalOnly: Boolean;

Предписывает показывать полосу только для значения False свойства Vertical компонента-владельца TCoolBar

property Imagelndex: Integers;

Содержит индекс связанного с полосой изображения

property MinHeight: Integers;

 

Определяет минимальное значение высоты полосы при изменении ее размеров

property MinWidth: Integers;

 

Определяет минимальное значение ширины полосы при изменении ее размеров

property ParentBitmap: Boolean; 

 

 

Разрешает/запрещает использовать значение свойства Bitmap компонента-владельца TCoolBar вместо собственного свойства Bitmap

property Text: String;

Содержит текст полосы

property Visible: Boolean;

Если содержит False, полоса не видна на этапе прогона программы

property Width: Boolean;

Определяет ширину полосы в пикселях

Свойства компонента TCoolBar:

property AutoSize: Boolean;

Если содержит True, высота компонента будет автоматически согласовываться с высотой полос

property BandBorderStyle: TBorderStyle;

 

Определяет наличие рамок: bsNone - нет рамок; bssingle - каждая полоса имеет рамку толщиной в 1 пиксель

property Bands: TCoolBands;

 

 

 

Содержит список всех полос. Свойство items этого объекта открывает доступ к полосе по ее индексу

property Bitmap: TBitmap;

 

Определяет изображение, которое будут использовать все полосы

property FixedOrder: Boolean;

Запрещает/разрешает перемещение полос

property FixedHeight: Boolean;

 

Запрещает/разрешает изменение размера полос

property Images; TImageList;

 

Указывает контейнер для изображений, связанных с каждой полосой

property ShowText: Boolean;

 

Если содержит True, на полосе показывается связанный с ней текст

property Vertical: Boolean;

 

 

Если содержит True, полосы располагаются по вертикали компонента

Для компонента определены такие события:

property OnChange: TNotifyEvent;

Возникает при изменении свойств Break,

Index или Width у любой полосы

property OnResize: TNotifyEvent;

Возникает при изменении размеров компонента