Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАБ_ПОА_2005_Builder.doc
Скачиваний:
7
Добавлен:
03.05.2019
Размер:
1.26 Mб
Скачать

Инструментальные панели − компоненты ToolBar и PageScroller

Инструментальные панели можно создавать, не прибегая к специальным компонентам, например, поместить на форму простейшую панель Panel, разместить на ней быстрые кнопки SpeedButton и написать для кнопок соответствующий код. Но специализированные компоненты дают дополнительные возможности для построения инструментальных панелей.

Для построения различных инструментальных панелей используется компонент ToolBar.

Задание 6. Изучить инструментальную панель ToolBar.

  1. Начните новый проект. Сохраните файл модуля и файл проекта. Поместите панель ToolBar на форму. По умолчанию она расположится вверху, поскольку ее свойство Align = alTop. Задав Align = alNone, можно придать панели любую форму и расположить ее в любом месте. Свойства, определяющие вид панели ToolBar: BorderWidthширина бордюра, EdgeInner и EdgeOuterстиль изображения внутренней и внешней части панели (утопленный или выступающий), EdgeBorders − определяет изображение отдельных сторон панели (левой, правой, верхней, нижней).

  2. Занесите компоненты − кнопки на панель ToolBar. Это можно сделать обычным способом − переносом их из палитры компонентов. Однако воспользуйтесь более простым вариантом: щелкните на ToolBar правой кнопкой мыши и из всплывшего меню выберите команду Новая кнопка. На форме появится кнопка − объект типа TTollButton. Вид и поведение этой особой кнопки определяется ее свойством Style, которое по умолчанию равно tbsButton − кнопка. В отличие от кнопки SpeedButton, изображение на ней определяется свойством ImageIndex, в котором находится индекс изображения, хранящегося в компоненте ImageList. Указание на этот компонент может задаваться такими свойствами компонента ToolBar, как Images, DisAbledImages (указывает на список изображений кнопок в недоступном состоянии) и HotImages (указывает на список изображений кнопок в моменты, когда над ними перемещается курсор мыши).

Занесите четыре кнопки на панель ToolBar. Загрузите в компонент ImageList файлы изображений fldropen, filesave, print, tools из каталога Program Files\Common Files\Borland Shared\Images\Buttons для четырех кнопок на панели ToolBar. В свойстве Images панели ToolBar сошлитесь на компонент ImageList.

Сохраните все и выполните приложение. Убедитесь, что кнопки на панели ToolBar работают как кнопки Button.

  1. Задайте стиль кнопок Style = tbsCheck. Выполните приложение. Убедитесь, что после щелчка пользователя на кнопке она остается в нажатом состоянии. Повторный щелчок на кнопке возвращает ее в отжатое состояние. Следовательно, поведение кнопок подобно кнопкам SpeedButton. Отметим, что по умолчанию свойство AllowAllUp = false. Установите во всех кнопках AllowAllUp = true. Выполнив приложение, убедитесь, что поведение кнопок не изменилось. Для одной из кнопок задайте Down = true и снова выполните приложение. Задайте свойство Grouped =true во всех кнопках и убедитесь, что сейчас кнопки работают как группа, в которой только одна кнопка может находиться в нажатом состоянии. В указанной выше кнопке установите Down = false и снова выполните приложение.

  2. Щелкните на ToolBar правой кнопкой мыши и из всплывшего меню выберите команду Новая кнопка. В появившейся на панели новой кнопке установите Style = tbsSeparator. Так заносится на панель ToolBar горизонтальный разделитель, позволяющий отделить друг от друга кнопки различных функциональных групп. Затем добавьте еще одну кнопку и выполните приложение. Удалите разделитель и добавленную кнопку.

  3. Для занесения на панель ToolBar вертикального разделителя в добавляемой кнопке нужно установить Style = tbsDivider. Однако проще ввести вертикальный разделитель из контекстного меню ToolBar, выбрав команду Новый сепаратор. Убедитесь в этом, добавив на панель вертикальный разделитель и пятую кнопку. После выполнения приложения удалите разделитель и пятую кнопку.

  4. Свойство кнопки Indeterminate задает ее третье состояние − не нажатая и не отпущенная. Это свойство можно устанавливать в true во время выполнения, если в данном режиме кнопка недоступна. Одну из кнопок выделите свойством Marked, задав его равным true. Выполните приложение. Снимите выделение с кнопки.

  5. Свойство Wrap, установленное в true, приводит к тому, что после этой кнопки ряд кнопок на панели прерывается, и следующие кнопки размещаются в следующем ряду. Убедитесь в этом, добавив на панель 6-7 кнопок, изменив значение Wrap на true у второй добавляемой кнопки. Выполните приложение. Удалите все добавленные кнопки.

Свойство MenuItem позволяет задать раздел главного или контекстного меню, который дублируется данной кнопкой. При установке этого свойства, если в соответствующем разделе меню было задано изображение и установлен текст подсказок (свойство Hint), то это же изображение появится на кнопке и тот же текст появится в свойстве Hint кнопки. Передадутся из раздела меню в кнопку также значения свойств Enabled (доступность) и Visible (видимость). Следует отметить, что все это передастся в кнопку только в момент установки свойства MenuItem. Если в процессе дальнейшего проектирования будут изменены соответствующие свойства раздела меню, это не отразится на свойствах кнопки. Нужно стереть значение MenuItem, а потом установить его снова, чтобы зафиксировать в кнопке новые значения свойств раздела меню.

  1. Со страницы Стандарт перенесите на форму компонент MainMenu и

сконструируйте меню с подменю следующего вида:

ФАЙЛ ПРАВКА ИНСТРУМЕНТЫ

Открыть Экран

Сохранить Шаблон 1

Печать Шаблон 2

Автосохранение

В свойстве Images компонента MainMenu укажите ImageList. Для разделов Открыть, Сохранить, Печать, ИНСТРУМЕНТЫ в свойстве ImageIndex укажите соответственно 0, 1, 2, 3. Для разделов Открыть, Сохранить, Печать в свойство Hint впишите соответственно открыть текстовый файл, сохранить текстовый файл, печать текстового файла. Все сохраните и выполните приложение.

  1. В свойство MenuItem кнопок панели ToolBar внесите соответственно номера разделов Открыть, Сохранить, Печать, ИНСТРУМЕНТЫ, а в свойство ShowHint для первых трех кнопок внесите true. Сохраните все и выполните приложение. Убедитесь, что при нажатии четвертой кнопки в панели ToolBar появляется подменю головного раздела ИНСТРУМЕНТЫ. Сопоставьте и объясните полученные результаты в последних двух случаях.

  1. Для четвертой кнопки, соответствующей разделу ИНСТРУМЕНТЫ, установите Style = tbsDropDown. Кнопка приобретет вид выпадающего списка. Выполните приложение и убедитесь, что в выпадающем списке появляются разделы выпадающего меню.

  2. При Style = tbsDropDown можно вместо свойства MenuItem задать свойство DropDownMenu, определяющее контекстное меню (компонент PopupMenu), которое будет отображаться в выпадающем списке.

Со страницы Стандарт перенесите на форму компонент PopupMenu и

сконструируйте контекстное меню с разделами копировать, вставить. Добавьте на панель ToolBar пятую кнопку, в ее свойство DropDownMenu внесите PopupMenu и задайте для нее Style = tbsDropDown. Выполните приложение. Убедитесь, что при щелчке на пятой кнопке появляется контекстное меню. Удалите пятую кнопку.

  1. В инструментальных панелях используются и другие компоненты. В качестве эксперимента поместим на панель компонент ComboBox (со страницы Стандарт) и компонент CSpinEdit (со страницы Примеры). Выполните приложение и убедитесь в его правильной работе.

Из общих свойств компонента ToolBar следует еще отметить ButtonHeight и ButtonWidth − высота и ширина кнопок в пикселах, и Wrapable − автоматический перенос кнопок в следующий ряд панели, если они не помещаются в предыдущем. Такой перенос осуществляется и во время проектирования, и во время выполнения при изменении пользователем размеров панели.

Полоса инструментальной панели может быть очень длинной и не помещаться в отведенном ей месте формы (например палитра компонентов C++Builder). В этих случаях используют компонент PageScroller, обеспечивающий прокрутку панели (может прокручивать любой компонент, но только один и только в одном направлении − горизонтальном или вертикальном).

Основное свойство компонента PageScroller Control. Оно указывает компонент, который должен размещаться и прокручиваться в окне PageScroller. Продолжим проектирование приложения.

  1. Поместите компонент PageScroller на форму. В его свойстве Control установите ToolBar. В этот момент панель ToolBar переместится в окно компонента PageScroller и появится, если необходимо, кнопка прокрутки. Свойство Margin компонента PageScroller определяет размер полей в пикселах, которые оставляются между краем окна PageScroller и прокручиваемым компонентом. По умолчанию эти поля равны нулю и надо задать Margin некоторое положительное значение (например 10), чтобы края прокручиваемого компонента были лучше видны. Выполните приложение и поэкспериментируйте с компонентом PageScroller.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]