
- •Общая форма приложения
- •Использование компонента Rave для построения отчета
- •Создание сложного отчета
- •Создание сложного отчета (повторение)
- •Создание файла помощи
- •Создание установочного файла
- •Создание однодокументного приложения
- •Окна сообщений и диалоговые окна (модальные формы)
- •Массивы. Компонент Memo.
- •Использование компонентов Memo и ListBox
- •Одномерные массивы
- •Многомерные массивы
- •Реализация интерфейса с использованием графики
- •Дополнительные возможности с Формой
- •Шаблоны
- •Мультипликация
- •Мультипликация. Возможности Delphi
- •Многоугольники
Общая форма приложения
Элемент с закладками представляет собой управляющий элемент, содержащий несколько страниц (листов), которые пользователь выбирает, щелкая по закладкам. Для работы с закладками в Delphi служат компоненты Win32 – TabControl (одностраничный блокнот), PageControl (многостраничный блокнот).
Компоненты TabControl и PageControl являются контейнерами, и могут содержать в себе другие компоненты, объединяя их.
Одностраничный блокнот
TabControl представляет собой прямоугольную область с набором закладок. При выборе пользователем какой-либо закладки происходит автоматическое переключение на нее. Одностраничный блокнот обычно применяется в случаях, когда требуется набор закладок, по функциям совпадающий с группой зависимых переключателей. Например, при создании календаря или записной книжки с алфавитным указателем. Компонент TabControl может отображаться различными стилями, определяемые свойством Style типа TTabStyle, принимающим следующие значения:
tsTabs – стандартные закладки объемного вида (по умолчанию)
tsButtoms – закладки в виде кнопок
tsFiatButtoms – закладки в виде плоских кнопок
Если закладки имеют вид кнопок, то у компонента TabControl отсутствует рамка, ограничивающая страницу. При необходимости программист должен сам визуально ограничить область указанного компонента. Для этого можно использовать такие компоненты, как Bevel или Panel, а также средства класса TCanvas.
Число и названия закладок определяет свойство Tabs типа TStrings, представляющие собой список строк, используемый для формирования закладок.
При выполнении программы работать с закладками можно так же, как и с любым объектом типа TStrings, настраивая свойства и вызывая соответствующие методы, например, Add для добавления новой закладки, Delete для удаления существующей и так далее.
Так, в примере
TabControl.Tabs[2]:=’Новое название’;
TabControl.Tabs.Add(‘Новая закладка’);
TabControl.Tabs.Delete(7);
к компоненту TabControl добавляется новая закладка, удаляется восьмая закладка, а третья закладка изменяет свое название.
Свойство MultiLine типа Boolean определяет, могут ли закладки отображаться в несколько строк.
Местоположение закладок в различных местах одностраничного блокнота определяется свойством TabPosition типа TTabPosition, которое может принимать следующие значения:
tpTop – располагаются вверху (по умолчанию)
tpBottom – располагаются внизу
tpLeft – располагаются слева
tpRight – располагаются справа
Размеры закладок задаются свойством TabWidth и TabLeight типа Smallint, определяющими ширину и высоту в пикселях. По умолчанию оба свойства имеют значение нуль, что соответствует автоматическому изменению размеров закладки в зависимости от названия.
Свойство TabIndex типа Integer указывает выбранную закладку в массиве строк. Это свойство доступно для записи и может быть использовано программистом для переключения на закладку с нужным номером. Например, для переключения на вторую закладку можно выполнить следующий код:
TabControll.TabIndex:=1;
Переключение закладок при разработке приложения выполняется с помощью Инспектора объектов путем изменения свойства TabIndex.
Свойство HotTrack типа Boolean определяет, подсвечиваются ли название закладок, когда на ней находится указатель мыши. По умолчанию свойство HotTrack имеет значение False, и название закладок при перемещении по ним указателем мыши цветом не выделяются.
Так как все закладки имеют одну страницу (общую область отображения), то при переключении закладок программист должен предусмотреть действия, связанные с обновлением информации в этой области. Для такой обработки удобно использовать событие onchange типа TTabChangingEvent, возникающее непосредственно перед активизацией.
Событие exchanging происходит до переключения закладок, поэтому его обработчик позволяет запретить переключение, если не выполнены какие-либо необходимые условия.
Параметр AllowChange определяет возможность переключения закладки. Если AllowChange имеет значение True , то закладка переключается, в противном случае – нет.
Для управления отображением данных на компоненте TabControl иногда требуется знать размер его страницы. Страница является клиентской областью блокнота, ее размеры определяет свойство DisplayRect типа TRect, позволяющее получить в пикселях координату левого верхнего угла, ширину и высоту области.
В клиентской области элемента TabControl можно не только размещать управляющие жлементы, но и рисовать различные графические изображения.
Многострочный блокнот
PageControl, в отличии от компонента TabControl, состоит из нескольких страниц, расположенных одна под другой. Каждая страница имеет свою закладку и относительно независима от других страниц. Поэтому при активизации ярлыка страницы становятся доступными все элементы данной страницы, поэтому ярлыки являются частью страницы.
Отдельные страницы многостраничного блокнота называются панелями, и сам компонент PageContol – многопанельный компонент. Число страниц многостраничного блокнота указывает свойство PageCount (integer), действующее только во время выполнения программы и доступное только для чтения.
Добавление/удаление ярлыков происходит при помощи контекстного меню. Для установления свойств каждого ярлыка необходимо в дереве объектов выбрать нужную страницу.
Свойство ActivePage компонента PageControl определяет выбранную закладку, а вместе с ней и страницу, находящуюся сверху. Это свойство доступно и для записи, и для чтения. При разработке приложения, содержащее многостраничный блокнот, переключение между страницами происходит при помощи выбранного ярлыка в рабочем состоянии приложения.
Параметр TabIndex компонента PageControl указывает номер страницы, закладка которой отображаются. Управление видимостью отдельных страниц выполняется при помощи свойств Visible и TypeVisible.
Каждая страница может иметь свое контекстное меню
Пример:
Создать общую форму приложения для базы данных «комбинат»
создаем папку и помешаем в нее БД
создаем в Delphi новый проект – save project as
для установления связи с БД «комбинат» создать компонент модуль DataBD, на котором расположить все компоненты связи
file – new – DataModul
file – save as – UnitBD
name – DataBD
ADOConnection
Connection string – 5сверху (хз) – путь (только имя БД) – проверить соединение – ок – ок – ок.
Login Promt – False
для каждой таблицы БД создать пару компонентов связи .
Таблица «Директор»:
ADOTable: DataSource:
Connection – ADOCombinat name - DataDirector
Name – ADODirector dataset - ADODirector
Tablename – Director
Active – true
Таблица «Поставщик»:
ADOTable: DataSource:
Connection – ADOCombinat name - DataPostavshik
Name – ADOPostavshik dataset - ADOPostavshik
Tablename – Postavshik
Active – true
Таким образом создать все остальные компоненты связи
на главной форме расположить компонент PageControl с вкладки Win32. В контекстном меню добавить необходимое количество вкладок для всех форм.
Caption – Director