Russian Belarusian English German Japanese Ukrainian

Rashka.studio - игры и приложения для Android! Заходи, ждём тебя =)

ToolBar и PageScroller - инструментальные панели

CuBook2.755

Инструментальные панели можно создавать, не прибегая к специальным компонентам. Можно поместить на форму простейшую панель Panel, разместить на ней быстрые кнопки SpeedButton и панель готова. Остается только написать для кнопок соответствующий код. Но специализированные компоненты, дают, конечно, дополнительные возможности для построения инструментальных панелей.
Если вы поместите компонент ToolBar на форму, то по умолчанию он расположится вверху, поскольку его свойство Align по умолчанию равно alTop. Если вы хотите, чтобы панель располагалась иначе, установите Align = alNone, после чего можете придать панели любую форму и расположить ее в любом месте.
 
Компонент ToolBar

Занесение компонентов на панель ToolBar можно, в принципе, осуществлять обычным способом - переносом их из палитры компонентов. Но для занесения кнопок имеется и более простой вариант. Щелкните на ToolBar правой кнопкой мыши и выберите из всплывшего меню команду New Button. На форме появится очередная кнопка объект типа TToolButton. Это не совсем обычная кнопка, так как в дальнейшем вы увидите, что внешне она может не походить на кнопку. Ее вид и поведение определяется ее свойством Style, которое по умолчанию равно tbsButton - кнопка. Данный стиль очень похож на кнопку SpeedButton, только изображение на кнопке определяется не свойством Glyph, а свойством Imagelndex. Оно определяет индекс изображения, хранящегося во внешнем компоненте ImageList. Указание на этот компонент может задаваться такими свойствами компонента ToolBar, как Images, Disabledlmages (указывает на список изображений кнопок в недоступном состоянии) и Hotlmages (указывает на список изображений кнопок в моменты, когда над ними перемещается курсор мыши).
 
Свойство Menultem позволяет задать раздел главного или контекстного меню, который дублируется данной кнопкой. При установке этого свойства, если в соответствующем разделе меню было задано изображение и установлен текст подсказок (свойство Hint), то это же изображение появится на кнопке и тот же текст появится в свойстве Hint кнопки. Передадутся из раздела меню в кнопку также значения свойств Enabled (доступность) и Visible (видимость). Правда, все это передается в кнопку только в момент установки свойства Menultem. Если в процессе дальнейшего проектирования вы измените соответствующие свойства раздела меню, это не отразится на свойствах кнопки. Но если вы сотрете значение Menultem, а потом установите его снова, то в кнопке зафиксируются новые значения свойств раздела меню.
 
Свойство Wrap, установленное в true, приводит к тому, что после этой кнопки ряд кнопок на панели прерывается и следующие кнопки размещаются в следующем ряду.
Свойству Style задает стиль кнопки. Значение Style = tbsCheck определяет, что после щелчка пользователя на кнопке она остается в нажатом состоянии. Повторный щелчок на кнопке возвращает ее в отжатое состояние. Поведение такой кнопки подобно кнопкам SpeedButton и определяется аналогичными свойствами AllowAllUp и Down. Если при этом в нескольких кнопках установлено свойство Grouped = true, то эти кнопки образуют группу, из которой только одна кнопка может находиться в нажатом состоянии.
Значение Style = tbsDropDown соответствует кнопке в виде выпадающего списка. Этот стиль удобен для воспроизведения выпадающего меню. Если для подобной кнопки задать в качестве свойства Menultem головной раздел меню, то в выпадающем списке автоматически будут появляться разделы выпадающего меню.
При Style = tbsDropDown можно вместо свойства Menultem задать свойство DropDownMenu, определяющее контекстное меню (компонент PopupMenu), которое будет отображаться в выпадающем списке.
Значение Style = tbsSeparator приводит к появлению разделителя, позволяющего отделить друг от друга кнопки разных функциональных групп.
Значение Style = tbsDivider приводит к появлению разделителя другого типа в виде вертикальной линии. Разделитель можно ввести и из контекстного меню ToolBar, выбрав команду New Separator.
Свойство кнопки Indeterminate задает ее третье состояние - не нажатая и не отпущенная. Это свойство можно устанавливать в true во время выполнения, если в данном режиме кнопка не доступна.
Свойство Marked выделяет кнопку.
 
Из общих свойств компонента ToolBar следует отметить ButtonHeight и ButtonWidth - высота и ширина кнопок в пикселах, и Wrapable - автоматический перенос кнопок в следующий ряд панели, если они не помещаются в предыдущем. Такой перенос осуществляется и во время проектирования, и во время выполнения при изменении пользователем размеров панели.
Свойства, определяющие вид панели ToolBar: BorderWidth - ширина бордюра, Edgelnner и EdgeOuter - стиль изображения внутренней и внешней части панели (утопленный или выступающий), EdgeBorders - определяет изображение отдельных сторон панели (левой, правой, верхней, нижней).
 
Компонент PageScroller

Полоса может быть очень длинной и не помещаться в отведенном ей место на форме. Примером является палитра компонентов C++Builder. В этих случаях может помочь компонент PageScroller, обеспечивающий прокрутку панели. Собственно говоря, PageScroller может прокручивать любой компонент, не обязательно панель ToolBar. Например, он может прокручивать какую-то панель вместе с размещенными на ней компонентами. В этом отношении он напоминает компонент ScrollBox. Но есть и заметные различия между этими двумя компонентами: PageScroller прокручивает только один компонент и только в одном направлении горизонтальном или вертикальном. Да и оформление управления прокруткой у PageScroller не похоже на полосы прокрутки в ScrollBox.
 
Основное свойство компонента PageScroller - Control. Оно указывает компонент, который должен размещаться и прокручиваться в окне PageScroller. Благодаря наличию этого свойства вы можете проектировать свою инструментальную панель, например, ToolBar, не помещая ее заранее в окно PageScroller и не задумываясь о ее размере. А после того, как вы спроектировали панель, можно ввести на форму компонент PageScroller и установить его свойство Control. В этот момент ваша инструментальная панель переместится в окно компонента PageScroller и появится, если необходимо, кнопка прокрутки.
 
Свойство Margin компонента PageScroller определяет размер полей в пикселях, которые находятся между краем окна PageScroller и прокручивающимся компонентом. По умолчанию эти поля равны нулю, но надо задать свойству Margin некоторое положительное значение. Иначе края прокручиваемого компонента могут быть плохо видны.
Свойство AutoScroll определяет, должна ли прокрутка осуществляться математически, как только курсор мыши пройдет над кнопкой прокрутки. Лучше оставлять значение AutoScroll равным false, поскольку такая автоматическая прокрутка не очень удобна пользователю.
Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter

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