delphi form1调用form2 如何调用

2024-11-18 19:42:02
推荐回答(4个)
回答1:

首先要use form2所在的单元。

//这句话是说:要把那条语句加在implementation的后面
//比如:implementation
//
// uses form2;
//
// {$R *.dfm}
//

form2.show就可以了。

//这是说:在form2被delphi自动创建的情况下,你就可以直接将它显示出
//来,因为这个窗体已经被创建了,只是没有显示出来。

如果form2没有自动创建,
//也就是说:form2没有在程序执行的时候自动创建。此时,要想让窗体显示出来,必须先创建它,然后再调用它的show或者showmodal方法。

if not Assigned(form2) then
Form2:= TForm2.create(Self);

//上面的代码加在button的click事件中就可以了。上面代码只是创建了
//个窗体,并没有将它显示出来,所以,要想将它显示出来,还得调用窗
//体的show或者showmodal方法。
//如:procedure Tform1.Button1Click(Sender: TObject);
// begin
// if not Assigned(form2) then
// Form2:= TForm2.create(Self);
// form2.show;
// end;

还不懂的话,可以联系我。

回答2:

首先是如何use form2
处在form1单元代码编辑状态,点击File->use unit,选择form2所在的单元名称就可以了。这时你在form1的代码中可以发现implementation下有uses **
然后if语句加到form2.show前面就可以了~
希望可以帮到你!

回答3:

这有两种情况,一种是程序运行自动建立了Form2,一种是需编写代码创建Form2

看看你的xxx.dpr工程文件

begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2); // 有这行说明程序会自动创建
Application.Run;
end.

对于自动创建的,只须用
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.ShowModal;
end;

就可显示Form2

对于第二种情况,则用下面代码:
procedure TForm1.Button1Click(Sender: TObject);
var
Form2:TForm2;
begin
Form2 := TForm2.Create(Self);
Form2.ShowModal;
From2.Free;
end;

回答4:

同样也要
uses Unit2;

procedure TForm1.Button1Click(Sender: TObject);
begin
if Form2=nil then //当form2不存在也就是没有创建的时候
begin
form2:=tform2.create(self); //创建form2
form2.show;
end
else
Form2.Show;
end;