Справочник по компонентам Delphi. Часть 3 - Форма (TForm)

ОГЛАВЛЕНИЕ

 

Форма (TForm) 

Последним в этом разделе будет рассмотрен самый важный, особый компо­нент — форма. Форма в Delphi — это синоним окна. В библиотеках для Windows (MFC, OWL) существуют отдельные классы для каждой важной разновидности окон — диалогового окна, клиентских и дочерних окон MDI и так далее. Разработчики VCL пошли по новому пути, объединив в одном классе свойства и методы всех этих разновидностей. Специализация при этом все равно осталась — она определяется свойством:

(Рb) property FormStyle: TFormStyle;
TFormStyle = [fsNoririal, fsMDIChild, fsMDIForm, fsStayOnTop);
  • fsNormal — обычное окно;
  • fsMDIChild — дочернее окно приложения MDI;
  • fsMDIForm — главное окно MDI;
  • fsStayOnTop — окно, остающееся поверх других даже в неактивном со­стоянии. (В данном случае это касается только других окон приложения).

Такая разновидность, как диалоговое окно, не имеет собственного стиля. Каким образом реализуются его особенности, описано ниже.

У TForm есть методы, которые имеют смысл только для некоторых из стилей FormStyle. Рассмотрим сначала общие свойства и методы формы, а затем — специфические.

Набор пиктограмм в заголовке окна описывается свойством:

 (Рb) property Borderlcons: TBorderIcons;
TBorderIcon = (biSystemMenu, biMiniinize, biMaximize);
TBorderIcons = set of TBorderIcon;

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

Обрамление формы задается свойством:

 (Pb) property BorderStyle: TFormBorderStyle;
TFormBorderStyle = (bsNone, bsSingle, bsSizeable, bsDialog);

Помимо двух стандартных стилей обрамления (bsNone и bsSingle) у формы есть еще два своих типа (bsSizeable и bsDialog). Эти возможности стандартны для Windows. Особенности реализации здесь заключаются в том, что стиль обрамления может изменяться в процессе выполнения программы.

Каждое окно может находиться в одном из состояний — нормальном, свер­нутом (минимизированном) и развернутом (максимизированном), что опреде­ляется свойством:

property WindowState: TWindowState;
TWindowState = [wsNormal, wsMinimized, wsMaximized);

Значение этого свойства можно изменить как на этапе разработки, так и во время исполнения.

Окно в свернутом состоянии на экране отображается значком формы, который задается в свойстве:

 (Pb) property Icon: TIcon; 

Значок главной формы приложения идентифицирует само приложение в TaskManager Windows 3.11 и Windows NT или TaskBar Windows 95. Если он не определен, то используется значок приложения (объекта Application).

Каждая форма может иметь главное и всплывающее меню. Главное меню определяется свойством:

 (Рb) property Menu: TMainMenu; 

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

Всплывающее меню формы представлено свойством:

 (Pb) property PopupMenu: TPopupMenu; 

Форма может содержать объекты OLE. Для этого она должна быть зарегистрирована в качестве их приемника. Свойство

 property DropTarget: Boolean; 

устанавливает, может ли форма быть приемником объектов OLE. Для разме­щения подменю возможностей сервера OLE можно выделить отдельный пункт:

 (Pb) property ObjectMenuItem: TMenuItem; 

Этот пункт будет активизироваться при получении фокуса компонентом TOLEContainer.