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; |
Возникает при изменении размеров компонента |