搞不明白(50分)

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

bk_hs

Unregistered / Unconfirmed
GUEST, unregistred user!
近日,小生我碰到一个问题,在关闭MDI的子窗体后,再打开该窗体(该窗体只能开一个),报错,错误信息说什么地址错。
望有人指点一下。
代码:
 
可能是你"关闭MDI的子窗体"的时候把它给释放了,然后你直接show它当然会出错,
你需要先create,然后再show,
或者"关闭MDI的子窗体"的时候只是hide,然后你再show它就不会出错,
 
字窗口的建立是要用代码进行的吧,你是吗?
如果语句如下
if <form_name>=nil then begin
<form_name>.<Tform_name>.create(self);
end;
那么就必须在onclose事件中加入语句
action:=cafree
<form_name>:=nil;
 
不是的,我现在close子窗体的时候,他没有真正释放掉,我用Assign判断该窗体对象还存在,但是show的时候出错
 
谢谢wanzhigang![:D]
代码:
 
mdi窗体没有关掉,在主窗体是是可以看到的。
如果没关掉的话,那就是你在onshow事件里面执行也某种操作而引起的。
 
assign和用=nil来判断是相同的较果。
如果没有<form_name>:=nil,在释放了窗口后,变量中的值并不会变成nil,因为它只是
一个指向被分配的地址,但实际分配的空间已经释放了,所以会报错。

就像邮箱地址指向的是一个已经被删除了的邮箱,你的信当然会被退回来(即出错)
 
后退
顶部