窗体创建和函数关联相关的两个小问题
1,用窗体名称作为传入参数,创建窗体,怎么避免重复创建?
如下面代码中注释调的部分;使用not assigned()判断返回的结果每次都是false
也就是说,assigned判断结果一直为true。
function JaxCreateForm(const AFormName:string):boolean;
var
AForm: TForm;
AFormClass: TFormClass;
begin
try
if FindClass(AFormName) <> nil then
begin
try
AFormClass := TFormClass(FindClass(AFormName));
// if not assigned(TForm(copy(AFormName,2,Length(AFormName)-1))) then
AForm := AFormClass.Create(nil);
AForm.Show; //mdi类型form不能使用showmodal释放窗体;
except
AForm.Free;
AForm := nil;
end;
end
else begin
showmessage(format('创建窗体"%s"出错!',[AFormName]));
end;
except
end;
end;