怪异的问题,不知道有没有人遇到过

zpan1978 2004-09-21 03:25:24
if not Assigned(DevResfrm) then
DevResfrm := TDevResfrm.Create(self);
DevResfrm.Show;

很简单的创建一个窗口(MDIChild),在Create的时候会停顿,不能进DevResfrm.create事件,从任务管理器中看,cpu正常,内存不涨,F7也跟不进去.有什么情况会导致这种情况发生?
...全文
135 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
chw_csdn_chw 2004-09-22
  • 打赏
  • 举报
回复
关闭DevResFrm的时候在DevResFrm.onclose中 action:=caFree;DevResFrm:=nil;
zpan1978 2004-09-22
  • 打赏
  • 举报
回复
这段话怎么可能起作用呢?if的条件是不会成立的,我说的停顿是create的时候停顿,不是在create完了之后的每次show停顿
wilowind 2004-09-22
  • 打赏
  • 举报
回复
如果为局部变量请用:
var
DevResFrm: TDevResFrm;
i: Integer;
begin
for i:=0 to Screen.FormCount-1 do
if Screen.Forms[i].ClassType = TDevResFrm then begin
Screen.Forms[i].Show;
exit;
end;
DevResFrm := TDevResFrm.Create(Application);
DevResFrm.Show;
end;
wilowind 2004-09-22
  • 打赏
  • 举报
回复
你这个DevResFrm是全局变量还是 方法内的局部变量?
zpan1978 2004-09-22
  • 打赏
  • 举报
回复
大家的方法我都试过了,没有用。
cqm2099 2004-09-21
  • 打赏
  • 举报
回复
up
GoldShield 2004-09-21
  • 打赏
  • 举报
回复
if (not Assigned(DevResfrm)) and DevResfrm<>nil then
DevResfrm := TDevResfrm.Create(self);
DevResfrm.Show;
openschema 2004-09-21
  • 打赏
  • 举报
回复
你写成这个试试:
if not Assigned(DevResfrm) then
DevResfrm := TDevResfrm.Create(Nil);
DevResfrm.Show;

用完后,自已完成destory的操作。
自已管理它的生命期。

tsst 2004-09-21
  • 打赏
  • 举报
回复
肯定是owner
ixingarden 2004-09-21
  • 打赏
  • 举报
回复
没道理吧,
除非那个窗口已经存在了,
houlong 2004-09-21
  • 打赏
  • 举报
回复
重启动delphi试试,也有可能TDevResfrm写得有问题
zpan1978 2004-09-21
  • 打赏
  • 举报
回复
没人知道?自己顶一下
zpan1978 2004-09-21
  • 打赏
  • 举报
回复
没有用啊,老样子
xiaoxiao197821 2004-09-21
  • 打赏
  • 举报
回复
self -> application

5,391

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧