delphi вкладки на форме

PageControl

Компонент delphi PageControl позволяет в ходе проектирования объединять на одной форме несколько вкладок, которые содержат разные элементы управления. Доступ к каждой из вкладок осуществляется при помощи корешков с названиями. На сегодняшний день большинство окон для настройки в программах Windows построены именно по такому принципу (Например, «Свойства обозревателя» в Internet Explorer, средства настройки Delphi 7 и т. д.). Данный компонент позволяет компактно расположить все элементы управления.

Изначально PageControl пустой, т. е. не содержит в себе ни одной страницы. При помощи команды New Page из контекстного меню создается новая страница, при этом в Инспекторе объектов создается новый объект TabSheet1. Изменить его название можно в свойстве Caption в Инспектора объектов.

Пример:

Первая страница программы содержит кнопку, а вторая – текстовое поле. При щелчке по кнопке в текстовом поле отображается строка «Hello!».

После того, как на вкладках размещены объекты, необходимо определить обработчик щелчка по кнопке.

1

2

Однако данная программа имеет один достаточно серьезный недостаток: на другую страницу необходимо переходить вручную. Для автоматического перехода необходимо использовать свойство ActivePageIndeх родительского объекта PageControl1, содержащее номер открытой страницы (нумерация начинается с 0).

В случае если заранее известно, какую страницу нужно показать, можно использовать свойство ActivePage:

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

PageControl1.Pages[0].Caption 1 = ‘Новый заголовок’;

Источник

В этом уроке мы переходим на вкладку Win32! Первый компонент, который мы будем рассматривать на этой вкладке называется ImageList или как говорят в народе «хранилище картинок».
Кидаем данный компонент на форму и щелкаем по нему 2 раза. Нам открывается окно редактора картинок. Здесь жмем на кнопку «Add. » и выбираем понравившуюся картинку.
Я выбрал две картинки из папки, которая устанавливается вместе с Delphi и находится вот по такому адресу:
C:\Program Files (x86)\Common Files\Borland Shared\Images\Buttons. И так, выбираем картинки и нажимаем кнопку «Открыть«. Далее появится окно, в котором Delphi спросит: «Разделить ли картинку на 2 части, то есть на левую половинку и правую)». Нажимаем кнопку «Yes» (или кнопку «Yes to All», если вы как и я выбрали две картинки).

les14 1

Если все сделано правильно, то картинки отобразятся в редакторе картинок.

les14 2

Заметьте, что каждая картинка получила свой индекс, он отображается снизу картинки. Теперь удалим «бледные» картинки (на скриншоте под индексами 1 и 3), выделив их и нажав кнопку «Delete«. Что они, мешать нам будут? :)

les14 3

Закрываем редактор картинок, нажимая на кнопку «OK», чтобы все изменения сохранились.

Далее выделяем на форме знакомый нам компонент MainMenu. У него есть свойство Images, в котором нужно выбрать наш ImageList из выпадающего списка.

les14 4

В инспекторе объектов ищем свойство ImageIndex.

les14 6

les14 7

По-моему, всё так, как мы и хотели! Кстати, проделать ту же работу можно и с компонентом PopupMenu.

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

Поместим компонент PageControl на форму, кликнем по нему правой кнопкой мыши и выберем пункт «New Page«, чтобы создать новую вкладку. Таким же образом создайте еще три вкладки, чтобы в итоге у вас получилось четыре вкладки.

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

les14 8

les14 9

И так, выделите первую вкладку. В инспекторе объектов измените свойство Caption на «Калькулятор«. Теперь это же свойство, только у второй вкладки заменяем на «История«. Свойство Caption третей вкладки заменяем на «Диаграмма«. Про название четвертой вкладки мы поговорим позже.
У компонента PageControl есть еще такое интересное свойство MultiLine. Если оно принимает значение True, то вкладки, при недостаточном месте, располагаются в несколько строк.
Свойство TabPosition определяет позицию отображения вкладок.
Кстати, компонент PageControl тоже имеет свойство Images, в котором вы можете выбрать наше «хранилище картинок» и назначить вкладкам определенные картинки по индексу. Ну вот и всё, компонент готов!

les14 10

les14 11

les14 12

Сейчас я предлагаю скомпилировать программу и потестировать наш новый интерфейс! Если всё отлично и результат вас устраивает, то переходим к изучению следующего и последнего на этот урок компонента RichEdit.

RichEdit по сути то же самое, что и Memo, но с более расширенными возможностями. Например форматирование отдельных абзацев текста и поддержка формата «.rtf«.
Разместим RichEdit в четвертой вкладке компонента PageControl, а вкладку переименуем в «RichEdit«. Еще нам потребуется парочка кнопок, поэтому кинем их туда же, куда и RichEdit.

Переходим из визуальной части программы во внутреннюю и начинаем печатать код.
Создаем обработчик события Button3Click и пишем код: Компонент RichEdit имеет свойство Lines, точно такое же как и в Memo. Этот код, как вы уже наверно догадались, добавляет в самый конец новую строку в RichEdit.
Теперь изменим код в обработчике на следующий: Этот код не добавляет новую строку, как предыдущий, а заменяет весь текст в RichEdit на присваевымый.
Кстати, этим способом тоже возможно добавить новую строку: Сначала мы присваиваем новый текст в RichEdit, потом прибавляем комбинацию «#13#10» и потом еще прибавляем текст новой строки.

Как я говорил раньше, RichEdit позволяет форматировать текст, давайте это сейчас и сделаем: Если сейчас скомпилировать программу, то строка, на которой стоит каретка будет отображаться в маркированном списке.
Так же можно выровнять наш текст, по левому краю, по центру или по правому.
Выравнивание по центру: Таким же образом можно изменять и выделенный текст. Перейдем в обработчик события четвертой кнопки Button4Click и напишем код: Запускаем программу, выделяем какой-нибудь текст и нажимаем на четвертую кнопку. Текст окрашивается в красный цвет. Вместо clRed можно написать любые другие цвета, например clGreen, clBlue, clYellow и так далее.
Тут же можно изменить стиль текста: Вот таким образом происходит форматирование текста в компоненте RichEdit.

Как я говорил раньше, компонент RichEdit умеет работать с форматом «.rtf«. Давайте научимся сохранять текст в этом формате и загружать его обратно в RichEdit.
Добавим для удобства еще две кнопки на четвертую вкладку компонента PageControl и назовем их «Сохранить» и вторую кнопку «Загрузить«.

В обработчике события для кнопки «Сохранить» пишем код: А для кнопки «Загрузить» следующий код: В одинарных кавычках указываем путь, куда сохраняем файл и откуда загружаем файл. Файл сохранится в папку, где находится сама программа, то есть сам «.exe» файл.
Теперь вы можете открыть сохраненный файл «MyFile.rtf» например в программе Microsoft Office Word.
Сейчас измените текст в RichEdit и загрузите сохраненный файл.

В следующем уроке мы продолжим изучение компонентов с вкладки Win32.

Ну вот и всё! Удачи!
Встретимся в следующем уроке!

Источник

Delphi вкладки на форме

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

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

1. Компонент блокнота с закладками TabControl .

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

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

> tsButtons – закладки в виде кнопок;

· Tabs – количество закладок и их названия (это список строк в редакторе);

· Multiline – отображение закладок в виде нескольких строк или одной строкой ;

· TabPosition – выбор расположения закладок в различных местах блокнота

· TabWidth – ширина закладки в пикселях (по умолчанию 0, и размеры определяются атоматически в зависимости от длины названия);

· TabHeight – высота закладки в пикселях;

Пример использования компонента TabControl для разработки календаря:

Для разработки приложения надо:

1) поместить на форму компонент TabControl (закладки для наименований месяцев года в календаре), сформировать в свойстве Tabs 12 строк с сокращенными названиями месяцев;

2) в поле компонента TabControl поместить компонент Calendar из страницы Samples ;

3) связать номера месяцев календаря с номерами выбранных закладок компонента TabControl ; для этого создать обработчик события OnChange :

procedure TForm1.TabControl1Change(Sender: TObject);

Calendar1.Month := TabControl1.TabIndex +1;

4) разместить под компонентом TabControl