Имеется два способа отображения форм в Delphi:
1. Модально: форма должна быть закрыта пользователем, прежде чем можно будет выполнять работу на другой форме. Преимущество: предотвращение работы пользователя в другом окне во время выполнения важной операции за счет ограничения доступа только к данному окну. Для модального отображения используется команда Form2.ShowModal.
2. Немодально: разрешается одновременный доступ к работе на разных формах. Для немодального отображения используется команда Form2.Show.
Ññûëêè íà ìîäóëè
Èç-çà òîãî, ÷òî êàæäàÿ äîïîëíèòåëüíàÿ ôîðìà ñîõðàíÿåòñÿ â îòäåëüíîì ôàéëå, òî è ñâÿçü ìåæäó ôîðìàìè íàäî îôîðìëÿòü íà óðîâíå ôàéëîâ ïîñðåäñòâîì ñâÿçè ìîäóëåé.
Íàïðèìåð, Form1 ïðè ðàáîòå âûçûâàåò Form2, à òà,â ñâîþ î÷åðåäü, Form3, à Form3 âûçûâàåò Form1, то для создания соответствующих связей надо выполнить следующие действия:
1. Создать основную форму- из меню File выполнить командуNew Application.
2. Добавить еще 2 формы: из меню File дважды выполнить командуNew Form.
3. Выделить Form1. В меню File выбрать команду Use Unit, далее появится окно, в котором появится список всех форм данного приложения. Из списка нужно выбрать нужное (Form2) и нажать ОК.
4. Выделить Form2. В меню File выбрать команду Use Unit, далее появится окно, в котором появится список всех форм данного приложения. Из списка нужно выбрать нужное (Form3) и нажать ОК.
5. Выделить Form3. В меню File выбрать команду Use Unit, далее появится окно, в котором появится список всех форм данного приложения. Из списка нужно выбрать нужное (Form1) и нажать ОК.
После выполнения этих шагов Delphi автоматически добавит команды об используемых модулях во всех файлах в разделах Implementation и Interface
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
Tform1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: Tobject);
procedure Button2Click(Sender: Tobject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2;
{$R *.DFM}
procedure Tform1.Button1Click(Sender: TObject);
begin
form2.Show;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;
end.
| unit Unit2;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm2 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: Tform2;
implementation
uses Unit3;
{$R *.DFM}
procedure TForm2.Button1Click(Sender: TObject);
begin
form3.showmodal;
end;
procedure TForm2.Button2Click(Sender: TObject);
begin
close;
end;
end.
| unit Unit3;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm3 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
uses Unit1;
{$R *.DFM}
procedure TForm3.Button1Click(Sender: TObject);
begin
form1.show;
end;
procedure TForm3.Button2Click(Sender: TObject);
begin
close;
end;
end.
|
Óïðàâëåíèå ìîäóëÿìè
Ïðè ðàáîòå ñ ïðîåêòîì, ñîäåðæàùèì íåñêîëüêî ôîðì, óäîáíî âûïîëíÿòüïåðåêëþ÷åíèå ìåæäó íèìè îäíèì èç 2 ñïîñîáîâ:
· ìåíþ View/Project Manager
· ìåíþ View/Unit èëè ìåíþ View/Form.