Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
8 Виз и невиз комп. формы..doc
Скачиваний:
3
Добавлен:
27.10.2018
Размер:
584.7 Кб
Скачать

Основные визуальные компоненты библиотеки VCL

1. Форма

1.1. Создание, состав и показ формы

Приложение для Windows состоит из одного или нескольких окон, обычно назы­ваемых в Delphi формами. При запуске Delphi автоматически создает основную (главную) форму с именем Forml. Формы имеют ряд свойств. С их помощью мож­но управлять внешним видом и поведением формы. Форма имеет ряд обработчиков событий, для которых может быть разработан текст методов, определяющих дейст­вия, которые должны быть выполнены при наступлении соответствующих им со­бытий.

Форма является компонентом типа TForm. В процессе разработки приложения на форме размещаются визуальные и невизуальные компоненты, образующие ин­терфейсную часть приложения. Форма представляет собой прямоугольное окно с рамкой. Большинство окон имеет область заголовка, в которой расположены пик­тограмма заголовка, заголовок и ряд кнопок (в правом верхнем углу), позволяющих свернуть (на полосу Пуска Windows), развернуть (восстановить) и закрыть окно. На форме можно разместить главное меню (под областью заголовка) и строку со­стояния (панель статуса), обычно в нижней части окна (рис. 1). При необходимо­сти на форме могут автоматически появляться полосы прокрутки. Остальная часть . окна называется клиентской областью. В ней можно размещать элементы управле­ния процессом выполнения приложения, выводить текст и графику и пр.

Сложное.приложение обычно содержит несколько форм. По умолчанию все формы создаются автоматически, и первая из созданных форм считается глав­ной. Ей передается управление в начале выполнения приложения. Закрытие главной формы вызывает завершение выполнения приложения.

Рис. 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).