Разработка любого приложения начинается с выбора его формы. Форма является основным строительным блоком в Delphi. Любая программа имеет как минимум одну связанную с ней форму, которая называется Главной, эта форма появляется на экране в момент запуска программы. Однако программа может иметь сколько угодно форм, каждая из которых решает какую-то локальную задачу и появляется на экране по мере надобности.
Разновидности форм определяются значениями их свойства FormStyle, а также разнообразием форм-заготовок, хранящихся в репозитории Delphi.
Стиль формы задается одним из значений свойства
Стиль fsNormal определяет обычную форму, использующуюся для решения самых различных задач, в том числе - для общего управления всей программой (главная форма).
Стили fsMDIChild и fsMDIForm используются при создании так называемых многодокументных приложений в стиле MDI (MDI - Multi Document Interface). Этот немодный сегодня стиль предполагает создание главного окна MDI (его обычно называют рамочным), внутри которого по мере надобности появляются дочерние окна. Дочерние окна подобно дочерним элементам контейнера не могут выходить за границы своего владельца - рамочного окна. В MDI-приложениях есть специальные средства управления взаимодействием рамочного окна с дочерними окнами. Например, каждое дочернее окно в момент активизации может нужным образом настроить главное меню рамочного окна. В Delphi для создания рамочного окна используется стиль fsMDIForm, а для создания дочернего MDI-окна - стиль fsMDIChild.
Стиль fsStayOnTop используется для окон, которые всегда должны располагаться над всеми другими окнами программы. В момент активизации окна оно обычно становится видимым на экране, даже если перед этим его загораживали другие раскрытые окна. Стиль fsStayOnTop препятствует перекрытию окна другими окнами, даже если оно становится неактивным и теряет фокус ввода. Этот стиль используется в исключительных случаях, когда окно содержит что-то, требующее повышенного внимания пользователя.
Случаи, когда нужно использовать модель MDI, довольно ред¬ки. Прежде всего, это следует делать только тогда, когда все дочерние окна содержат идентичные объекты — например текстовые документы или электронные таблицы.
Не рекомендуется использовать MDI в случаях, если:
• необходимо работать в приложении с дочерними окнами разного типа (например, текстовыми документами и электрон¬ными таблицами одновременно);
• нужно управлять тем, какое из дочерних окон должно находиться поверх других, используя свойство «всегда наверху»;
• нужно управлять размерами окон, делать их невидимыми и т. п.
Интерфейс MDI предназначен для очень узкого множества приложений, в которых все дочерние окна однородны (как это имеет место, например, в Word или Excel прежних версий). Современные многооконные приложения чаще всего строятся в однодокументном стиле SDI (SDI - Single Document Interface), который, в противоположность MDI, не накладывает ограничений на положение и размеры вспомогательных форм, каждая из которых при необходимости может иметь свое главное меню (в стиле SDI реализована, например, среда Delphi). Для создания форм в этом случае используется стиль fsNormal.
Этот интерфейс необязательно предполагает наличие действительно только одного окна, как в приложениях Windows, типа «Калькулятор». Например, такое приложение, как «Проводник» Windows, также является SDI-приложением, но в нужные моменты оно создает вторичные окна для поиска файлов или папок, задания параметров, просмотра свойств файлов и других целей.
В репозитории Delphi, помимо универсальной пустой формы Form (страница New репозитория), хранится множество стандартных форм-заготовок, предназначенных для решения конкретных задач. Доступ к репозиторию открывает опция меню File|New|Other.