Управление компонентами формы

Если форма приложения имеет фокус ввода, то свойство Active имеет значение True. При этом активный (имеющий фокус ввода) элемент управления определяется свойством ActiveControl.

Если форма не имеет фокуса, то его можно получить при помощи метода SetFocus.

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

 

Controls[Index : Integer] : TControl;

 

От класса TWinControl унаследованы методы, позволяющие добавлять и удалять компоненты формы программно во время выполнения приложения:

InsertControl(AControl: TControl);

RemoveControl(AControl: TControl);

Шаблоны форм

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

Шаблоном называется форма, которая помещена в репозиторий (рис. 19) и используется в качестве основы для создания новых форм приложения. В результате полученные таким образом формы будут иметь единый стиль оформления и некие общие для всех функции. Репозиторий – это хранилище Delphi, в котором хранятся заготовки (шаблоны) проектов и их составных частей. Здесь можно найти стандартное приложение, динамическую библиотеку, форму, модуль и т.д. Доступ к репозиторию открывает опция меню File/New. Репозиторий состоит из пяти страниц – New, Forms, Dialogs, Data, Modules и Projects. Страница New содержит шаблоны для создания приложения (Application), объекта OLE-автоматизации (Automation Object), нового компонента (Component), модуля данных (Data Module), динамически загружае­мой библиотеки (DLL), формы (Form), текстового файла (Text), программного модуля и другие. Страница Forms служит для выбора предопределенных форм. Среди них – About Box, Database Form, Dual List Box, Quick Report Labels, Quick Report List, Quick Report Master/Detail и Tabbed Pages.

Для подключения новой формы к проекту достаточно обратиться к репозиторию и выбрать нужную разновидность формы. Менеджер проекта автоматически подключает новую форму к списку используемых форм и обеспечивает все необходимые действия по ее инициации. Самая первая подключенная к проекту форма (стандартное имя формы – Form1) становится главным окном программы. Окно этой формы автоматически появляется на экране в момент старта программы.

Полезную форму можно включить в репозиторий для постоянного использования в любом проекте. Для этого используется команда Add to Repository меню Project главного окна Delphi.

Использование нескольких форм в приложении

Главное окно должно знать о существовании другого окна, что достигается ссылкой на модуль окна в предложении Uses. Если, например, в ходе выполнения одного из методов главного окна программист захочет вызвать окно с именем Form2, связанное с модулем Unit2, он должен сослаться на этот модуль в предложении Uses главного окна:

 

implementation

Uses Unit2;

 

после чего вызвать окно на экран:

 

Form2. Show;

 

Для использования свойств и методов компонентов из модуля формы-владельца можно обращаться к этим компонентам по имени объектной переменной. Для обращения из других модулей необходимо добавлять имя формы-владельца, например,

 

Form2.Label1.Caption := . . .

 

Для перехода к следующей форме в программе необходимо использовать последовательность операторов:

 

Form1.Hide; Form2.Show.

 

Если Form1 не отражается на экране, то закрытие второй формы не приведет к окончанию работы приложения. В обработчиках событий нужно предусмотреть либо визуализацию первой формы, либо окончание работы приложения. Работа приложения закончится, если обратиться к методу Terminate класса TApplication:

 

Application.Terminate;