一个窗口调用的莫名其妙的报错! 有空来看看? ( 积分: 100 )

  • 主题发起人 主题发起人 bjaman
  • 开始时间 开始时间
B

bjaman

Unregistered / Unconfirmed
GUEST, unregistred user!
一个很简单的窗口显示的调用方法:
procedure LoadCollectModule;
begin
if not Assigned(frmRepCollectResult) then
frmRepCollectResult := TfrmRepCollectResult.Create(nil);
try
frmRepCollectResult.Visible := False;
frmRepCollectResult.ShowModal;
finally
FreeAndNil(frmRepCollectResult);
end;
end;
在执行到 frmRepCollectResult.ShowModal;时报错如下:
---------------------------
Debugger Exception Notification
---------------------------
Project report.exe raised exception class EInvalidOperation with message 'Cannot make a visible window modal'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
各位有没有遇到过这种情况? frmRepCollectResult.Visible := False;是为了避免出错加上去的,原本并不需要。只是加上了仍然报错。
 
frmRepCollectResult的visible, 在设计阶段就应该为false,检查一下是不是不小心点错了
 
在设计期本,窗口的Visible属性本来就是False的
 
原因可能是窗体已经显示了.
改成这样行不行:
procedure LoadCollectModule;
begin
if not Assigned(frmRepCollectResult) then
freeAndNil(frmRepCollectResult)
try
frmRepCollectResult := TfrmRepCollectResult.Create(nil);
frmRepCollectResult.ShowModal;
finally
FreeAndNil(frmRepCollectResult);
end;
end;
 
呵呵~~~楼上,我程序一启动就去执行这个调用,所以不存在事先已经打开此窗口的情况.
你所言先释放后创建的方法,我试过了,它是不报错了,但它竟然会反复调用自身,不断地先释放后创建,形成了死循环! 而我并未针对此窗口设置任何事件(包括OnCreate,OnShow等等)
真是见了他娘的鬼了!
顺便说一下:我用的D6
 
那你在frmRepCollectResult 这个窗体中有没有调用LoadCollectModule ?
 
来自:3868474, 时间:2007-1-6 18:23:47, ID:3653266
那你在frmRepCollectResult 这个窗体中有没有调用LoadCollectModule ?
============>>>
呵呵~~~~~超级低级的失误!果然在本窗口中发现了调用该方法的语句行.原本是要写到主菜单的调用事件里去的,怎么跑到了自己窗口底下? 真郁闷!
感谢了,发分!
 
后退
顶部