logo
Программирование в среде Delphy / Программирование в среде Delphi

24.1. Форма и ее свойства

Форма является основным строительным компонентом любой программы. Каждое приложение имеет хотя бы одну форму – главное окно программы. Программа может состоять из произвольного числа форм, которые появляются на экране по мере необходимости. Рассмотрим основные свойства формы:

Property FormStyle:TFormStyle; – стиль формы. Стиль может принимать следующие значения:

fsNormal – обычная форма;

fsMDIForm – главная форма многодокументального интерфейса;

fsMDIChild – дочерняя форма многодокументального интерфейса. Для многодокументного интерфейса (Multi Document Interface – MDI) характерно то, что дочерние формы могут создаваться только в границах основной MDI формы;

fsStayOnTop – форма, перекрывающая все остальные формы. Такая форма всегда будет находиться поверх других форм и может быть только одна. Таким значением формы следует пользоваться очень осторожно, так как она может просто «мозолить» глаза;

Property BorderIcons:TBorderIcons; – множество, определяющее наличие значков в заглавии окна. Возможны следующие значения элементов множества:

biSystemMenu – значек вызова системного меню, обычно – «закрыть окно»,

biMinimize – значек свертывания формы,

biMaximize – значек развертывания формы,

biHelp – значек вызова справочной службы;

Property BorderStyle:TFormBorderStyle; – стиль границы формы. Возможны следующие варианты:

bsNone – форма не имеет рамки и заголовка и не может перемещаться или изменять свои размеры,

bsSingle – форма с рамкой в один пиксель, она не может менять свои размеры,

bsSizeable – форма с обычной рамкой,

bsDialog – форма не может менять свои размеры,

bsToolWindow – подобно bsSingle, но с уменьшенным по высоте заголовком,

bsSizeToolWin – подобно bsSizeable, но с уменьшенным по высоте заголовком;

Property Position:Tposition; – определяет положение и размер формы в момент ее окрытия. Возможны следующие значения:

poDesigned –все определяется на этапе проектирования формы,

poDefault –положение и размеры окна определяет самой ОС Windows,

poDefaultPosOnly – Windows определяет только положение окна на экране,

poDefaultSizeOnly – Windows определяет только размеры окна на экране,

poScreenCenter – форма располагается по центру экрана,

Property Icon:TIcon; – значок окна, для главной формы, и значек приложения,

Property Menu:TMainMenu; – основное меню формы,

Property Canvas:TCanvas; – холст формы.

Рассмотрим возможность сделать в качестве фона формы какую–нибудь картинку. Для этого определим в качестве глобальной переменной указатель на картинку и два обработчика событий для формы, например:

Var gr:TBitMap; // Определяем указатель на картинку

Procedure TForm1.FormCreate(Sender:TObject); // Создание формы

Begin

Gr:=TbitMap.Create; // Выделяем память под картинку

Gr.LoadFromFile(’c:\my\pic1.bmp’); // Загружаем картинку из файла

End;

Procedure TForm1.FormPaint(Sender:TObject); // Перерисовка формы

Begin

Canvas.Draw(0,0,gr); // Отображаем картинку на форме

End;

В этом примере мы загружает картинку в память из файла в обработчике события создания формы. Если бы мы здесь же отобразили картинку на форме, то при перемещении формы или изменении ее размеров эта картинка исчезла бы, ведь при каждом изменении размеров формы или ее перемещении по экрану форма заново перерисовывается. Обработчик события OnPaint вызывается при каждой перерисовке формы до момента отрисовки всех компонентов, размещенных на форме. В нем мы и вызываем метод отображения картинки на форме.

Все формы проекта обычно создаются в начале работы приложения, и конструкторы для их создания вызываются в файле проекта с расширением *.dpr.

Формы бывают модальными и немодальными. Модальная форма не позволяет переключиться на другую форму приложения, пока сама не будет закрыта. Немодальные формы не имеют такого ограничения. Главная форма проекта вызывается автоматически при запуске приложения. Для отображения всех остальных форм используются методы:

Procedure Show; – отображение немодальной формы;

Procedure ShowModal; – отображение модальной формы.

Для закрытия форм используются методы:

Procedure Close; –закрытие немодальной формы;

Procedure CloseModal; – закрытие модальной формы.

Например, мы хотим из формы Form1 вызвать модальную форму Form2 в обработчике события нажатия какой–либо кнопки. Для этого можно написать:

Procedure TForm1.Button1Click(Sender:TObject);

Begin

Form2.ShowModal;

End;