首先要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;
还不懂的话,可以联系我。
首先是如何use form2
处在form1单元代码编辑状态,点击File->use unit,选择form2所在的单元名称就可以了。这时你在form1的代码中可以发现implementation下有uses **
然后if语句加到form2.show前面就可以了~
希望可以帮到你!
这有两种情况,一种是程序运行自动建立了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;
同样也要
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;