Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс лекций по дисциплине Объектно-ориентирован...doc
Скачиваний:
33
Добавлен:
01.07.2025
Размер:
14 Мб
Скачать
☆

3. Многостраничные панели — компоненты TabControl, PageControl, TabSet, TabbedNoteBook, NoteBook

Многостраничные панели позволяют экономить пространство окна приложения, размещая на одном и том же месте страницы разного содержания.

Перенесите компонент PageControl на форму. (см. рис. 51)

рис. 51. Компонент PageControl

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

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

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

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

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

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

Из общих свойств компонента PageControl можно отметить:

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

MultiLine Определяет, будут ли закладки размещаться в несколько рядов, если все они не помещаются в один ряд, но в левом MultiLine = false, а в правом — true; примером компонента с MultiLine = false является также знакомая вам палитра компонентов в Delphi)

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

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

TabWidth - Опеделяются автоматически по размерам надписей на них

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

ScrollOpposite - Определят способ перемещения закладок при размещении их в несколько рядов (опробуйте экспериментально, как это свойство влияет на поведение компонента)

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

Pages - Доступ к странице по индексу (первая страница имеет индекс 0). Свойство только для чтения.

PageCount - Количество страниц. Свойство только для чтения

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

Рассмотрим компонент TabControl. (см. рис.52)

рис. 52. Компонент TabControl

Внешне этот компонент выглядит так же, как PageControl, и имеет много тех же свойств: Style, MultiLine, TabPosi-tion, TabHeight, Tab Width, Images, ScrollOpposite, те же события OnChanging и OnChange. Но принципиальное отличие его от PageControl заключается в том, что TabControl не имеет множества панелей (страниц). Компонент представляет собой одну страницу с управляющим элементом типа кнопки со многими положениями. И надо написать соответствующие обработчики событий OnChanging и OnChange, чтобы определить, что именно должно происходить на панели при переключениях закладок пользователем. У компонента имеется еще одно свойство — MultySelect, позволяющее множественный выбор закладок. Если это свойство установлено в true, то в обработчиках событий надо описать реакцию на такой выбор пользователя.

Число закладок и их надписи определяются свойством Tabs типа TStrings. В нем вы можете задать надписи закладок. Сколько строчек надписей вы укажете, столько будет закладок. Текущее состояние переключателя определяется свойст­вом Tablndex. Вы можете установить его в процессе проектирования, чтобы опре­делить исходное состояние переключателя. А затем в обработчиках событий OnChanging и OnChange можете читать это свойство, чтобы определить, что именно выбрал пользователь.

Применять компонент TabControl имеет смысл в тех приложениях, в которых нужен многопозиционный переключатель.

Компоненты TabSet, TabbedNoteBook и NoteBook применяются в Delphi 1 и не рекомендуются для применения в 32-разрядных приложениях.