Russian Belarusian English German Japanese Ukrainian

CoolBar и ControlBar - перестраиваемые панели

CuBook45

Перестраиваемые панели являются дальнейшим развитием инструментальных панелей. Только в перестраиваемых панелях сами инструментальные панели обычно являются компонентами более сложных образований. Примером перестраиваемой панели может служить панель ИСР C++Builder 6, включающая в себя ряд более мелких панелей быстрых кнопок и палитру компонентов. Пользователь может настраивать их, изменять местоположение панелей и т.п.
 
Компонент CoolBar

Компонент CoolBar позволяет строить перестраиваемые панели, состоящие из полос (bands). В полосы могут включаться инструментальные панели ToolBar и любые другие оконные компоненты: окна редактирования, панели и т.п. Каждый из этих компонентов автоматически снабжается средствами перемещения его пользователем в пределах окна CoolBar. В полосы могут вставляться и не оконные компоненты, например, метки. Но они не будут перемещаемыми.
 
Поместите компонент CoolBar на форму. Перенесите на него другие компоненты, например, ToolBar и Edit. Когда вы размещаете на CoolBar очередной компонент, ему отводится отдельная полоса и он растягивается на всю ширину CoolBar. Около каждого компонента появляется слева полоска, за которую компонент можно перемещать. Например, взявшись за эту полоску вы можете переместить полосу вместе с ее компонентом в тот ряд, где уже имеется другой компонент. Тогда они расположатся в ряд один левее другого.
 
Свойства полос вы можете задавать редактором полос. Вызвать редактор полос можно тремя способами: из Инспектора Объектов кнопкой с многоточием около свойства Bands, двойным щелчком на компоненте CoolBar или из контекстного меню, выбрав команду Bands Editor. В окне этого редактора вы можете перемещаться по полосам, добавлять новые полосы или уничтожать существующие. При перемещении по полосам в окне Инспектора Объектов вы будете видеть свойства полос.
Свойство Control определяет размещенный на полосе компонент.
Свойство Break определяет, занимает ли полоса весь соответствующий размер контейнера CoolBar или обрывается.
Свойство Text задает текст, который может появиться в начале соответствующей полосы. Это свойство можно оставлять пустым.
 
Вместо свойства Text (или наряду с ним) можно задать свойство ImageIndex - индекс списка изображений ImageList, ссылка на который задается свойством Images. Указанные таким образом изображения появятся в начале соответствующих полос.
Свойства MinHeight и MinWidth определяют минимальную высоту и ширину полосы при перестроениях пользователем полос панели.
Свойство FixedSize определяет, фиксирован ли размер данной полосы или он может изменяться пользователем. По умолчанию для всех полос FixedSize = false, т.е. все полосы перестраиваются. Но при желании размеры некоторых полос можно зафиксировать, задав для них FixedSize = true.
 
Для компонента CoolBar в целом, помимо обычных для других панелей свойств, надо обратить внимание на свойство BandMaximize. Оно определяет действие, которым пользователь может установить максимальный размер полосы, не перетаскивая ее границу: bmNone - такое действие не предусмотрено, bmClick - щелчком мыши, bmDblClick - двойным щелчком. Наиболее целесообразно, по-видимому, задавать значения bmDblClick или bmNone, поскольку значение bmClick приводит к резкому перестроению полос даже при случайном щелчке мыши.
 
Свойство FixedOrder, если его установить в true, не разрешит пользователю в процессе перемещений полос изменять их последовательность. Вероятно, такое задание лучше, чем значение по умолчанию, равное false, поскольку чрезмерная свобода для пользователя способна его запутать.
Свойство Vertical указывает вертикальное или горизонтальное расположение полос. По умолчанию Vertical = false, что соответствует горизонтальным полосам.
 
Компонент ControlBar

Еще большую свободу перестроений дает пользователю компонент ControlBar. Только оформление панели несколько отличается от CoolBar и кроме того в ней может широко применяться техника перетаскивания и встраивания Drag&Doc.
 
Поместите на форму компонент ControlBar и перенесите на него несколько компонентов, например, инструментальных панелей ToolBar и окон редактирования Edit. Вы увидите, что каждый компонент, попадая на ControlBar, получает полосу захвата, свойственную технологии Drag&Doc.
Установите у компонентов, размещенных на ControlBar, свойство DragMode = dmAutomatic и DragKind = dkDock. Это означает автоматическое выполнение операций Drag&Doc.
 
Свойства компонента ControlBar RowSize и RowSnap определяют процедуру встраивания.
Свойство RowSize задает размеры полос, в которые могут встраиваться компоненты, a RowSnap определяет захват полосами встраиваемых компонентов.
Свойство AutoDrag определяет, можно (при значении true), или нельзя простым перетаскиванием вынести полосу за пределы ControlBar.
Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter

Добавить комментарий