关于MDI窗体创建时发生EInvalidOperation异常的问题
关于MDI窗体创建时发生EInvalidOperation异常的问题
我自定义了一个函数,函数如下:
function TMainFrm.CreateForm(CForm:TForm):boolean;
var
i:integer;
FormExist:boolean;
begin
FormExist:=false;
if(CForm=Nil) then //判断CFrom是否为空
begin
CreateForm:=false; //函数返回值赋false
exit; //退出本函数
end;
for i:=0 to Screen.FormCount-1 do //判断窗体是否已经建立起来
begin
if Screen.Forms[i].ClassType=CForm.ClassType then //判断窗体存在
FormExist:=true;
end;
if FormExist=false then
begin
CreateForm:=false; //函数返回值赋false
exit; //退出本函数
end;
if CForm.WindowState=wsMinimized then
ShowWindow(CForm.Handle,SW_SHOWNORMAL) //显示窗体
else
ShowWindow(CForm.Handle,SW_SHOWNA); //显示窗体
if not CForm.Visible then
CForm.Visible:=true;
CForm.BringToFront; //当前窗口显示在最前面
CForm.SetFocus;
CreateForm:=true;
end;
下面是调用过程,编译可以成功,但是执行下面application.CreateForm(Typxxfrm,ypxxfrm);时就会报EInvalidOperation异常,请大家指教。
procedure Tmainfrm.N4Click(Sender: TObject);
begin
if CreateForm(ypxxfrm)=false then
application.CreateForm(Typxxfrm,ypxxfrm);
end;