Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемwww.khsu.ru
1 Форма – главный компонент приложения
2 Формы представляют собой видимые окна Windows и являются основной частью практически любого приложения
3 Для работы с формой предназначен компонент Form класса TForm Форма является компонентом, который служит контейнером для всех других компонентов Приложение может иметь несколько форм, одна из которых считается главной и при запуске программы отображается первой
4 При закрытии главного окна (формы) приложения прекращается работа всего приложения Delphi по умолчанию делает главной первую форму (Form1)
5 В файле проекта (.dpr) эта форма создается первой: Application.Initialize; Application.CreateForm(TForm1, Form1); Application.CreateForm(TForm2, Form2); Application.Run;
6 Программно можно сделать главной любую форму приложения: Application.Initialize; Application.CreateForm(TForm2, Form2); Application.CreateForm(TForm1, Form1); Application.Run;
7 Удобно указать главную форму: в окне параметров проекта Project\Options в списке Main Form на странице Form При этом соответствующие изменения автоматически вносятся в файл проекта
8 Типичная форма содержит: область заголовка строку меню строку состояния полосы прокрутки клиентскую область (в ней можно размещать элементы управления, выводить текст, графику, манипулировать дочерними окнами)
9 Форма может быть: Модальной (требует обязательного закрытия перед обращением к любой другой форме приложения) Немодальной (позволяет без ее закрытия переключиться в другую форму приложения)
10 Характеристики формы
11 При создании и использовании формы генерируются события: OnCreate OnShow OnResize OnActivate OnPaint
12 Событие OnCreate генерируется только один раз – при создании формы, остальные события происходят при каждом отображении, активизации и каждой прорисовке формы соответственно
13 В обработчик события OnCreate обычно включают код, устанавливающий начальные значения свойств формы, а также ее элементов управления
14 Например: Procedure TForm2.FormCreate (Sender :TObject); Begin Form2.Caption:=Пример формы; Edit1.SetFocus; ComboBox2.Items.LoadFromFile(list.txt); Button3.Enabled:=False; End;
15 Если формы создаются вручную, то их отображение и скрытие в процессе работы приложения регулируется через свойство Visible Например: Form2.Visible:=True; Form2.Visible:=False;
16 Управлять видимостью форм на экране можно также с помощью методов Show и Hide Процедура Show отображает форму в немодальном режиме, при этом свойство Visible устанавливается в значение True, а сама форма переводится на передний план Процедура Hide скрывает форму, устанавливая ее свойство Visible в значение False Если окно видимо, то метод Show переводит форму на передний план и передает ей фокус ввода
17 Например: Form3.Show Form3.Hide;
18 В момент отображения формы на экране возникает событие OnShow, при скрытии формы возбуждается событие OnHide При получении формой фокуса ввода (например, при нажатии кнопки мыши в области формы) происходит ее активизация, и возникает событие OnActivate, а при потере фокуса – событие OnDeActivate
19 Событие OnPaint генерируется при необходимости перерисовки формы (например, при активизации формы, если до этого часть ее была закрыта другими окнами) Для закрытия формы используется метод Close, который удаляет ее с экрана. При закрытии главной формы прекращается работа всего приложения
20 Процедура Close не уничтожает созданный экземпляр формы, и форма может быть вызвана на экран с помощью методов Show или ShowModal Уничтожение формы происходит с помощью методов Release, Free или Destroy, после чего работа с этой формой становится невозможна, и любая попытка обратиться к ней или ее компонентам вызовет ошибку
21 При закрытии и уничтожении формы генерируются следующие события по порядку: OnCloseQuery OnClose OnDeActivate OnHide OnDestroy
22 Событие OnCloseQuery возникает в ответ на попытку закрытия формы. Обработчик события получает логическую переменную-признак CanClose, определяющую, может ли быть закрыта данная форма (по умолчанию True). Если установить параметр CanClose в значение False, то форма остается открытой. (Такую возможность стоит использовать для подтверждения закрытия окна или проверки, сохранена ли информация на диске)
23 Например: procedure TForm2.Button3Click(Sender: TObject); begin Form3.close; end; procedure TForm3.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin CanClose:=MessageDlg('Закрыть форму?', mtConfirmation,[mbYes,mbNo],0)=mrYes; end;
24 Событие OnClose возникает непосредственно перед закрытием формы Обычно оно используется для изменения стандартного поведения формы при закрытии
25 Для этого обработчику события передается переменная Action, которая может принимать следующие значения: caNone (форму закрыть нельзя) caHide (форма делается невидимой) caFree (форма уничтожается, а связанная с ней память освобождается) caMinimize (окно формы сворачивается)
26 При закрытии окна методом Close переменная Action по умолчанию получает значение caHide, и форма делается невидимой. При уничтожении формы методом Destroy переменная Action по умолчанию получает значение caFree и форма уничтожается
27 Событие OnClose возникает при закрытии формы щелчком мыши на кнопке закрытия или при вызове метода Close
28 Например: procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction); begin if Memo1.Modified then Action:=caNone else Action:=caHide; end; {Если информация в Memo1 была изменена, то форма не закрывается.}
29 Событие OnDestroy возникает непосредственно перед уничтожением формы и обычно используется для освобождения ресурсов
30 При каждом изменении размеров формы в процессе выполнения приложения возникает событие OnResize. В обработчике этого события может размещаться код, например, выполняющий изменение положения и размеров элементов управления окна, не имеющих свойства Align
31 Например : procedure TForm3.FormResize(Sender: TObject); begin //Установка размеров и положения сетки строк StringGrid1.Left:=10; StringGrid1.Top:=5; StringGrid1.Width:=Form3.ClientWidth-20; StringGrid1.Height:=Form3.ClientHeight-15-Button1.Height; //Установка положения кнопки Button1.Left:=Form3.ClientWidth-10-Button1.Width; Button1.Top:=Form3.ClientHeight-5-Button1.Height; end;
32 Стиль формы определяется свойством FormStyle fsNormal (стандартный стиль) fsMDIChild (дочерняя форма в многодокументном приложении) fsMDIForm (родительская форма в многодокументном приложении) fsStayOnTop (форма, которая после запуска всегда отображается поверх других окон)
33 Свойство BorderStyle: bsDialog (диалоговая форма) bsSingle (неизменяемые размеры) bsNone (нет видимой рамки и заголовка) bsSizeable (обычная форма) bsToolWindow (форма панели инструментов) bsSizeToolWin (форма панели инструментов с изменяемыми размерами)
34 Программно при выполнении приложения для формы любого стиля можно устанавливать любые допустимые размеры окна и изменять их Например: Form2.Width:=Form2.Width+100;
35 В области заголовка могут отображаться 4 вида кнопок. Реализуемый набор кнопок определяет свойство BorderIcons Форма включает в себя клиентскую и неклиентскую области. Размеры клиентской части формы задают свойства ClientWidth и ClientHeight (в пикселах)
36 Способ перемещения формы при помещении указателя на клиентскую область type TForm2 = class(TForm) procedure MoveForm(var Msg:TMessage); message WM_NCHitTest; procedure TForm2.MoveForm(var Msg:TMessage); begin inherited; if Msg.Result=1 then Msg.Result:=2; end;
37 Размещение и размер формы определяет свойство Position: poDesigned (в той позиции и с теми размерами, которые установлены при ее конструировании) poScreenCenter (в центре экрана, размеры не изменяются) poDefault (Windows автоматически определяет позицию и размеры окна) poMainFormCenter (выводится в центре главной формы приложения)
38 Свойство WindowState: wsNormal (обычное состояние) wsMinimized (свернута) wsMaximized (развернута)
39 Свойство ActiveControl определяет, какой элемент формы находится в фокусе Например: Form1.ActiveControl:=Edit2; Edit2.SetFocus;
40 Свойство KeyPreview типа Boolean определяет, будет ли форма обрабатывать события клавиатуры, прежде чем их обработают элементы управления формы
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.