在主窗体上写以下代码:
procedure TForm1.Button1Click(Sender: TObject);
begin
if not Assigned(Form2) then//判断是否存在Form2的实例
begin
try
Application.CreateForm(TForm2, Form2);
Form2.Show;
except
// ……
end;
end;
end;
在子窗体上写以下代码:
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TForm2.FormDestroy(Sender: TObject);
begin
Form2 := nil;//此句不可少
end;