Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекції для 3ОТ1.doc
Скачиваний:
10
Добавлен:
21.02.2016
Размер:
16.31 Mб
Скачать

Контрольні питання

  1. Огляд поняття строка стану

  2. Характеристика ластивостей компонента строка стану

САМОСТІЙНА РОБОТА СТУДЕНТА

Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень

Тема 1.4: елементи інтерфейсу

Самостійне заняття №7 – Елементи з закладками

План заняття

  1. Огляд поняття елементи з закладками

  2. Характеристика властивостей компонента елементи з закладками

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

В Delphi существуют компоненты TabControl (Одностраничный блокнот) и PageControl (Многостраничный блокнот), которые обеспечивают возможность работы с подобными элементами. Кроме того, вDelphi представлены еще такие элементы с заклад­ками, как TabSet, TabbedNotebook и Notebook, которые использу­ются для обеспечения совместимости с программами, разработан­ными в среде Windows 3.x (однако в данной книге они рассматри­ваться не будут).

По своей сути компоненты TabControl и PageControl являются контейнерами, которые могут содержать другие компоненты, объ­единенные в группы.

Одностраничный блокнот TabControl. Компонент TabControl

представляет собой прямоугольную область с набором за­кладок, переключение между которыми происходит автоматиче­ски при выборе одной из них. Одностраничный блокнот назван так потому, что он имеет одну общую страницу для всех закладок, и все действия по изменению отображаемой информации в зави­симости от выбранной пользователем закладки должны осуществ­ляться программно. Для этого программисту необходимо создать обработчики событий OnChange или OnChanging.

Событие OnChange возникает при активизации страницы, а со­бытие OnChanging - перед активизацией. Поэтому с помощью об­работчика события OnChanging можно заблокировать переключе­ние страниц, если не выполнено какое-либо необходимое условие.

Одностраничный блокнот, как правило, используется в тех случа­ях, когда требуется создать приложение, где закладки играют роль группы зависимых переключателей, и при выборе каждой новой за­кладки общая структура отображаемых на странице компонентов остается без изменения, а меняется только их содержимое. Например, при создании календаря на год, где с помощью закладок осуществля­ется переход между разными месяцами, будут изменяться только данные в таблице, а набор строк и столбцов остается прежним.

Рассмотрим важнейшие свойства одностраничного блокнота.

Свойство Style (тип TTabStyle) определяет стиль, кото­рым будет отображаться компонент TabControl. Данное свойство может принимать одно из трех значений:

  • tsTabs - стандартные закладки объемного вида;

  • tsButtons - закладки в виде кнопок;

  • tsFlatButtons - закладки в виде плоских кнопок.

В том случае, если закладка имеет вид кнопки, у нее отсутст­вует ограничивающая рамка, которая при необходимости должна быть создана вручную с использованием компонентов фаски (Bevel) или панели (Panel).

Свойство Tabs (тип TString) содержит список всех закладок и дает возможность обращаться к каждой из них по индексу. Дан­ное свойство доступно для редактирования с помощью Инспекто­ра объектов.

Свойство MultiLine (тип Boolean) определяет, могут ли закладки отображаться в виде нескольких строк. Когда данное свойство имеет значение True, то закладки будут располагаться на нескольких строках, если не помещаются в одну строку. В про­тивном случае закладки будут размещаться на одной строке, и если они не помещаются полностью, то в правой части данного компонента появляются стрелки, с помощью которых можно осуществлять прокрутку закладок.

Свойство TabPosition (тип TTabPosition) определяет расположение закладок в различных местах одностраничного блокнота: вверху, внизу, справа или слева.

Свойство ScrollOpposite (тип Boolean) задает поведе­ние закладок при выборе в случае, когда они размещаются в нескольких строках (имеет смысл только в случае, когда свой­ству MultiLine присвоено значение True). Если свойство ScrollOpposite имеет значение True, то строка с выбран­ной закладкой автоматически перемещается в первый ряд. В противном случае такого перемещения не происходит. При установке данному свойству значения True свойство Multi-Line также автоматически устанавливается в True.

Свойство TabWidth (тип Small In t) устанавливает ширину закладок в пикселях.

Свойство TabHeight (тип Smalllnt) задает высоту закла­док в пикселях.

По умолчанию свойства TabWidth и TabHeight имеют зна­чение 0, то есть размеры закладки устанавливаются автоматиче­ски в зависимости от длины названия.

Свойство Tablndex (тип Integer) содержит номер выбран­ной закладки компонента TabControl. С помощью изменения зна­чения данного свойства можно совершать программное переклю­чение между закладками.

Свойство HotTrack (тип Boolean) установленное в True, за­дает режим подсветки заголовка закладки синим цветом в момент, когда на нее наведен указатель мыши. Свойство Images (тип TCustomlmageList) дает возмож­ность отображать на закладках графические изображения из спис­ка ImageList, ссылка на который задается в качестве значения дан­ного свойства. Рисунки из списка будут распределяться в соответ­ствии с номерами закладок в списке свойства Tabs.

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

Решение. На первом этапе на форму добавляется компонент TabControl. Затем поверх него помещается таблица StringGrid.

В редакторе свойства Tabs для компонента TabControl вно­сятся названия стран, которые будут отображаться в виде закла­док одностраничного блокнота (см. рис. 9.6). Свойству Multi-Line присваивается значение True.

Таблица будет содержать два столбца и четыре строки, поэто­му для компонента StringGrid значение свойства ColCount уста­навливается равным 2, а свойства RowCount - равным 4. Число фиксируемых строк, определяемое свойством FixedRows, зада­ется равным 0.

Во время выполнения программы пользователь имеет возмож­ность получить краткую справочную информацию о стране, выбирая соответствующую закладку одностраничного блокнота TabControl.

При этом следует отметить, что заголовки строк таблицы задают­ся при создании формы и при изменении страницы не переопреде­ляются. В обработчике события OnChange компонента TabControl.

выполняется только внесение необходимых данных о стране во вто­рой столбец таблицы в зависимости от выбранной закладки.

Ниже показано, как программно реализуется решение постав­ленной задачи. Сведения о странах вносятся в разделе констант (const) в виде массива типа PChar. Дальнейшее заполнение таблицы осуществляется на основе совпадения названия выбран­ной закладки с соответствующим элементом данного массива.

Многостраничный блокнот PaseControl.

Компонент PageControl является управляющим элементом, включающим на­бор из нескольких страниц, размещаемых одна под другой. Каж­дая страница имеет закладку, которая является неотъемлемой ча­стью данной страницы, в отличие от одностраничного блокнота. Страницы используются для объединения различных управляю­щих элементов в группы, обеспечивая их компактное размещение и простое переключение между ними.

Многостраничный блокнот является более сложным управляю­щим элементом, чем компонент TabControl, однако многие свойства этих двух элементов совпадают. Поэтому будут рассмотрены только свойства, специфичные для компонента PageControl.

Свойство ActivePage (тип TTabSheet) определяет назва­ние текущей (выбранной) страницы компонента PageControl.

Свойство ActivePagelndex (тип Integer) служит для опре­деления индекса текущей страницы.

С помощью свойств ActivePage и ActivePagelndex можно программно устанавливать новую активную страницу.

Свойство PageCount (тип Integer) используется для опре­деления общего количества страниц многостраничного блокнота.

Свойство Pages [Index: Integer] (тип TTabSheet) содержит полный список всех страниц управляющего элемента PageControl. Доступ к любой странице блокнота по ее номеру можно получить путем использования данного свойства во время выполнения приложения. Порядковый номер страницы задается параметром Index.

Добавление и удаление страниц, а также перемещение между страницами компонента PageControl в процессе проектирования приложения осуществляется с помощью вызова контекстного меню (нажатием правой кнопки мыши в поле компонента) и дальнейшего выбора соответствующего пункта этого меню. Перемещаться между страницами можно также простым нажатием на закладке необходи­мой страницы. Это возможно, потому что каждая страница (включая закладку) является отдельным независимым объектом.

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

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