1、创建一个FORM的实例用:
someform:=Tsomeform.create(application);
而不要用:TApplication.createform(Tform,someform);
这是因为TApplication.create()会检查mainform是否为NIL,
如果是的话便把新创建的FORM做为主FORM
2、打开一个模式FORM
modalform:=tmodalform.create(application);
try
if modalform.showmodal =mrok then
{do something}
finally
modalform.free;
end;
3、打开一个无模式FORM
打开一个无模式form的标准写法是:
someform:=Tsomeform.create(application);
someform.show;
并在form的onclose事件中将此form释放掉。
procedure tsomeformclose(sender:tobject;var action:tcloseaction);
begin
action:=cafree;
end;
4、防止出现一个form的多个实例。
if not assigned(someform) then
someform:=tsomeform.create(application);
someform.show;
并在form的onclose事件中将此form释放掉:
procedure tsomeform.formclose(sender:tobject;var action:tcloseaction);
begin
action:=cafree;
end;
同时在一个form的ondestory事件中将此form变量设为NIL
Procedure tsomeform.formdestory(sender:tobject);
begin
someform:=nil;
end;