Delphi中动态创建窗体有四种方式,最好的方式如下:
比如在第一个窗体中调用每二个,主为第一个,第二个设为动态创建
Uses Unit2; //引用单元文件
procedure TForm1.Button1Click(Sender: TObject);
begin
form2:=TForm2.Create(Application); //创建窗体
form2.Show; //显示窗体
end;
在form2中的onclose中写
action:=cafree;
form2:=nil;
end.
在Delphi中,所有窗体关闭时都会调用OnClose过程。
该过程的Action: TCloseAction变量决定窗体的关闭方法。
对于SDI子界面,默认是caHide,也是就隐藏。
对于MDI子界面,默认是caMinimize,也就是最小化。
你可以在窗体的OnClose过程中设置Action为caFree,就可以正常关闭窗体了。
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
======================================================
Application.CreateForm(TForm2,Form2);
form2:=TForm2.Create(Self);
form2:=TForm2.Create(nil);