
- •1. Форма
- •1.1. Создание, состав и показ формы
- •1.2. Основные характеристики формы
- •1.3. Особенности модальных форм
- •1.4. Шаблоны форм
- •1. Меню
- •1.1. Компоненты главного и всплывающего меню
- •1.2. TMenuItem - компонент пункта меню. Подменю, команда
- •1.3. Создание меню с помощью конструктора
- •1.4. Управление меню во время выполнения приложения
Основные визуальные компоненты библиотеки VCL
1. Форма
1.1. Создание, состав и показ формы
Приложение для Windows состоит из одного или нескольких окон, обычно называемых в Delphi формами. При запуске Delphi автоматически создает основную (главную) форму с именем Forml. Формы имеют ряд свойств. С их помощью можно управлять внешним видом и поведением формы. Форма имеет ряд обработчиков событий, для которых может быть разработан текст методов, определяющих действия, которые должны быть выполнены при наступлении соответствующих им событий.
Форма является компонентом типа TForm. В процессе разработки приложения на форме размещаются визуальные и невизуальные компоненты, образующие интерфейсную часть приложения. Форма представляет собой прямоугольное окно с рамкой. Большинство окон имеет область заголовка, в которой расположены пиктограмма заголовка, заголовок и ряд кнопок (в правом верхнем углу), позволяющих свернуть (на полосу Пуска Windows), развернуть (восстановить) и закрыть окно. На форме можно разместить главное меню (под областью заголовка) и строку состояния (панель статуса), обычно в нижней части окна (рис. 1). При необходимости на форме могут автоматически появляться полосы прокрутки. Остальная часть . окна называется клиентской областью. В ней можно размещать элементы управления процессом выполнения приложения, выводить текст и графику и пр.
Сложное.приложение обычно содержит несколько форм. По умолчанию все формы создаются автоматически, и первая из созданных форм считается главной. Ей передается управление в начале выполнения приложения. Закрытие главной формы вызывает завершение выполнения приложения.
Если в приложении есть формы, которые надо сформировать только по требованию пользователя, их надо указать на странице Forms - формы параметров проекта, вызванной командой Project\Options. Если форма при разработке проекта переведена в окне Forms из списка Auto-create forms в список доступных форм (Available forms), то оператор ее создания исключается из файла проекта (*.dpr) и для использования формы надо в ходе выполнения приложения создать экземпляр этой формы. Создать форму во время выполнения приложения надо методом CreateForm (имя_типа, имя_формы).
Для создания экземпляра формы используется метод CreateForm или конструктор Create. Они создают экземпляр формы в соответствии с его описанием в файле формы с расширением *.dfm. Примеры вызова методов создания формы:
Form2 := TForm2.Create(Application);
CreateForm(Tform2, Form2);
// - вызов конструктора
// - вызов метода
При создании и использовании формы происходят следующие события, для реакции на которые можно сформировать определенные методы:
OnCreate - при создании формы;
OnShow-при показе формы;
OnResize - при изменении размеров формы;
OnAcivate - при активизации формы;
OnPaint- при перерисовке формы.
Если форма создана, сделать ее видимой можно с помощью методов Show или ShowModal или невидимой с помощью метода Hide. Закрыть форму можно методом Close. При выполнении метода Close возникает событие onCloseQuery. В его обработчик передается параметр CanClose, определяющий, можно ли продолжить закрытие формы. По умолчанию значение параметра CanClose равно True. Но из текстов программы можно управлять его значением, методом Free можно удалить объект, созданный методом Create.
Если одна форма (например, Forml) выполняет какие-либо действия с другой формой (например, Form2), надо организовать их взаимодействие (взаимосвязь) с помощью оператора Uses. Для этого сначала надо активизировать форму или модуль, к которому надо присоединить другой модуль. Затем вызвать команду File\Use Unit. Появляется диалоговое окно Use Unit (Выбор Модуля), представленное на рис. 2. В нем надо выбрать имя модуля, с которым должна быть установлена связь, и нажать кнопку ОК. После этого в модуле, к которому присоединен другой модуль, появится в разделе Implementation оператор Uses Unit2. Этот оператор можно написать и вручную.
Рис. 2. Вид окна Use Unit
Форма может быть модальной и немодальной. Немодальная форма позволяет переключиться на другую форму приложения без своего закрытия. Модальную форму надо обязательно закрыть перед обращением к любой другой форме приложения.
Формы, которые отображают различные сообщения и требуют от пользователя ввода какой-либо информации, называют диалоговыми (диалогами). Диалог также может быть немодальным или модальным.
В Windows (и в Delphi) имеется 2 основных типа приложений: однодокументные (SDI - Single Document InterFace) и многодокументные (MDI - Multiple Document InterFace). Однодокументные приложения состоят из одной или нескольких форм, относительно независимых друг от друга. В SDI-приложении ни одно окно на экране не содержит в себе другие окна (например, в Delphi). В MDI-приложении главное окно (родительское) содержит дочерние окна, размещаемые в его пределах (например, окна WORD).