страница. Получается, что когда мы создаем новую страницу, то мы как бы создаем отдельный компонент внутри компонента TPageControl. Именно поэтому TPageControl лишен недостатков компонента TTabControl. Каждая его страница— это отдельный объект внутри целого компонента. Если в прошлый раз нам самим приходилось делать что-то подобное с помощью панелей, то тут это делается автоматически.
Я надеюсь, что вы заметили, что сам компонент происходит от TPageControl, а ВОТ страницы происходят ОТ TTabSheet.
У каждой страницы есть свойство caption, в котором можно написать заголовок страницы. Помимо этого, есть свойство imageindex, в котором можно выбирать картинку, как это делалось при создании меню. В этом случае нужно установить на форму компонент TimageList и загрузить в него картинки. После этого достаточно выбрать компонент PageControl и указать в его свойстве images компонент imageList. Теперь в списке imageindex у страниц появятся картинки, и вы сможете их выбирать. Попробуйте весь процесс подключения картинок проделать самостоятельно.
Если необходимо сделать какую-то страницу невидимой, то можете не пытаться изменить свойство visible, это не поможет. За видимость страниц TTabSheet отвечает СВОЙСТВО TabVisible.
Давайте создадим четыре вкладки со следующими именами:
- Основные настройки;
- Параметры пользователя;
- Загрузка и восстановление;
- Настройки печати.
На рис. показана форма нашей будущей программы. Попробуйте создать нечто подобное. Практически все, что необходимо для этого знать, мы уже проходили. В данном примере на каждую вкладку установлено несколько компонентов, чтобы можно было видеть, как меняются страницы. Они ничего не делают, а служат просто оформлением для большей наглядности.
Теперь рассмотрим поближе свойства и методы компонента TPageControl.
- ActivePage— это свойство имеет тип TTabSheet и указывает на активную в данный момент страницу. Вы можете управлять этой страницей, например, можно изменить ее заголовок:PageControll.ActivePage.Caption: = 'новый заголовок'.
- ActivePageindex — индекс выделенной в данный момент страницы.
- Pagecount — в этом свойстве хранится количество страниц.
- Pages — в этом массиве хранятся все страницы. Например, чтобы изменить заголовок нулевой, можно написать следующий код:
- PageControll.Pages[0].Caption:='новый заголовок'.
- HotTrack — если этот параметр равен true, то заголовки страниц будут подсвечиваться при наведении на них курсора мыши.
- MultiLine— заголовки могут выстраиваться в несколько строк, если названия не умещаются в одну строку.
- Multiseiect — разрешить выделение нескольких страниц сразу. Это свойство может быть истиной, только если в свойстве style указано tsFiatButtons или tsButtons. Честно говоря, внешний вид и результат не очень удобен и эстетичен, и, на мой взгляд, лучше воздержаться от множественного выбора.
- style — стиль заголовков страниц. Здесь можно указать одно из значений:
- tsTabs — стандартный вид;
- tsButtons — в виде кнопок;
- tsFiatButtons — в виде плавающих кнопок.
- TabPosition— позиция вкладок. Здесь может быть одно из значений: tpTop, tpLeft, tpRight, tpBottom, что соответствует верхней, левой, правой и нижней позиции.
- TabHeight - высота вкладок. Вы можете указать определенное значение высоты или 0, что будет соответствовать значению по умолчанию.
- Tabwidth — ширина вкладок. Если здесь указано 0, то ширина будет минимально необходимой для отображения заголовка.
Это основные свойства, которые могут вам понадобиться.
Если посмотреть на класс страниц TTabSheet, то он очень похож на панель TPanei, только имеет свойства Pageindex (индекс страницы) и imageindex (индекс картинки).