Главная » Уроки по ООП » Урок 15. Контейнеры

Урок 15. Контейнеры

Панели общего назначения —Panel, Splitter, GroupBox,  ScrollBox, PageScroller

С помощью Panel компонуются различные элементы интерфейса, функционально связанные друг с другом. Внешний вид панели Panel определяется совокупностью параметров:
BevelInner — стиль внутренней части панели,
BevelOuter — стиль внешней части панели,
BevelWidth — ширина внешней части панели,
BorderStyle — стиль бордюра,
BorderWidth — ширина бордюра.

Компонент Splitter

Свойство MinSize компонента Splitter устанавливает минимальный размер в пикселях обеих панелей, между которыми зажат разделитель. Задание такого минимального размера необходимо, чтобы при перемещениях границы панель не сжалась бы до нулевого размера или до такой величины, при которой на ней исчезли бы какие-то необходимые для работы элементы управления.
Компонент Splitter имеет событие OnMoved, которое наступает после конца перемещения границы. В обработчике этого события можно предусмотреть, если необходимо, упорядочение размещения компонентов на панелях, размеры которых изменились: переместить какие-то метки, изменить размеры компонентов и т.д.

Задание 1. Создать форму, содержащую три панели, которые располагаются так, как показано на рисунке ниже. При изменении пользователем размеров окна панель Panel1 должна в любом случае занимать всю нижнюю часть окна, не увеличиваясь в высоту. Панель Panel2 должна занимать левую часть окна, изменяя при изменении размеров окна свою высоту, но, не изменяя ширину. А панель Panel3 должна занимать всю оставшуюся часть окна. Кроме того надо обеспечить пользователю возможность изменять положение границы между панелями Panel2 и Panel3, расширяя одну из этих панелей и соответственно сжимая другую.
Исходя из требований свойство Align надо установить у панели Panel1 в alBottom, у панели Panel2 — в аlLeft, у панели Panel3 — в alClient. А между Panel2 и Panel3 надо разместить Splitter — разделитель.
А)  Б)
Рисунок 1.
Ход решения:
1. Разместите на форме панель Panel1 и задайте у нее Align = alBottom.
2. Разместите на форме панель Panel2 и задайте у нее Align = alLeft.
3. Разместите на форме разделитель Splitter и задайте у него Align = alLeft (впрочем, это значение Align установлено по умолчанию). Разделитель прижмется к правой стороне панели Panel2, которая уже выровнена в ту же сторону. Разделитель всегда надо выравнивать только после выравнивания соответствующей панели, так как иначе он прижмется просто к краю формы.
4. После этого можно разместить на форме панель Panel3 и задать у нее Align = alClient. Разделитель окажется зажатым между Panel2 и Panel3.
5. Откомпилируйте приложение, запустите его на выполнение и убедитесь, что, потянув курсором мыши за границу раздела между панелями, вы можете перемещать эту границу (рис. Б).

ScrollBox — панель с прокруткой (на стр.Additional)

Этот компонент предназначен для создания области, в которой могут размещаться компоненты, занимающие площадь большую, чем сам ScrollBox.

Свойство AutoScroll позволяет задать автоматическое появление необходимых полос прокрутки, если размер размещенных компонентов превышает размер области по горизонтали, вертикали или в обоих измерениях.

PageScroller (на стр.Win32)

Предназначен для прокрутки одного компонента, который может являться контейнером и содержать в себе другие компоненты. Направление прокрутки задается свойством Orientation, которое может иметь два значения:

  • soHorizontal –прокрутка в горизонтальном направлении;
  • soVertical – прокрутка в вертикальном направлении.

Компонент часто используется совместно с панелями инструментов, которые обычно имют фиксированную ширину или высоту, т.е. не требуют перемещения видимой области во всех направлениях.

Задание 2.  Установить на форму  компонент ScrollBox. На него установить шесть компонентов CheckBox (рис.2). Уменьшить компонент ScrollBox так, чтобы было видно только три компонента CheckBox.

Рисунок 2

МНОГОСТРАНИЧНЫЕ ПАНЕЛИ

Компонент PageControl (на стр.Win32).

Чтобы задавать и редактировать страницы этого компонента, надо щелкнуть на нем правой кнопкой мыши. Во всплывшем меню вы можете видеть команды:

New Page — создать новую страницу,

Next Page — переключиться на следующую страницу,

Previous Page — переключиться на предыдущую страницу.
Каждая создаваемая вами страница является объектом типа TTabSheet. Это панель, на которой можно размещать любые компоненты, окна редактирования и т.п. После того, как вы создадите несколько страниц, выделите одну из них, щелкнув в ее середине, и посмотрите ее свойства в Инспекторе Объектов.

Свойства страницы TabSheet

Name

Имя, по которому можно ссылаться на страницу

Caption

Надпись, которая появляется на ярлычке закладки

PageIndex

Индекс страницы, по которому можно ссылаться на страницу

ImageIndex

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

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

Style

Определяет стиль отображения компонента: tsTabs — закладки, tsButtons — кнопки, tsFlatButtons — плоские кнопки.

MultiLine

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

TabPosition

Определяет место расположения ярлычков закладок: tpBottom — внизу, tpLeft — слева, tpRight — справа и tpTop — вверху компонента

TabHeight и TabWidth

Высота и ширина ярлычков закладок в пикселях. Если значения этих параметров заданы равными 0, то размеры ярлычков определяются автоматически по размерам надписей на них

Images

Ссылка на компонент ImageList, который содержит список изображений на ярлычках. Свойства ImageIndex страниц содержат индексы, соответствующие именно этому списку.

ActivePage

Имя активной страницы

Основные события компонента:

OnChanging

происходит непосредственно перед переключением на другую страницу после щелчка пользователя на новой закладке. При этом в обработчик события передается по ссылке параметр AllowChange — разрешение переключения. Если в обработчике задать AllowChange = false, то переключение не произойдет.

OnChange

происходит сразу после переключения

 

Задание 3: установите в приложении компоненты PageControl и TabControl (на стр.Win32).
Создайте закладки в компоненте PageControl.
Для создания закладок у компонента TabControl необходимо в свойстве Tabs компонента ввести столько строк, сколько требуется закладок (каждая строка – заголовок закладки). Создайте несколько закладок в компоненте TabControl.
Поставьте на первой странице каждого компонента по кнопке (рис.3).
Запустите приложение, пощелкайте по закладкам компонентов.
Ответьте на вопрос: в чем отличие этих двух компонентов?

Рисунок 3

Задание 4. Установите на форму компонент PageControl и размножьте его в трех экземплярах на форме. Для каждого из четырех компонентов PageControl выполните следующие настройки (рис.4).

Рисунок 4.

 

 

Составитель: Салий Н.А.

Яндекс.Метрика
Сайт создан в системе uCoz