默认情况下,每个Form都声明了一个全局指针。即使您没有自动创建表单,您仍然可以使用该指针。对于任何给定的Form,将其全局指针初始化为
nil
启动时,检查指针
无
在创建该窗体的新实例之前,请在窗体关闭时销毁该窗体,并将其全局指针重置回
无
当表格被销毁时。例如:
unit LoginForm;
interface
...
type
TLoginForm = class(TForm)
...
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
...
end;
var
LoginForm: TLoginForm = nil; // <-- here
implementation
...
procedure TLoginForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TLoginForm.FormDestroy(Sender: TObject);
begin
LoginForm := nil;
end;
...
end.
procedure TMainForm.SomeProcedure;
begin
...
if not Assigned(LoginForm) then
LoginForm := TLoginForm.Create(Self);
LoginForm.Show;
...
end;