为什么Assigned(Form2) 不是Nil?

Tronnin 2003-04-18 12:38:19
form2点了叉叉是不是就是free了form2啊?

为什么在mainfrm里还是执行Assigned(form2)=true部分的代码呢?
...全文
76 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tronnin 2003-04-18
  • 打赏
  • 举报
回复
To songlian77(八國聯軍)
出错:“Access Violation at 0004***** ....."
DainelLee 2003-04-18
  • 打赏
  • 举报
回复
像这样就可以了,
具体为什么我也不是很清楚,不过有可能是
Assigned判定指针,
free、release释放的是资源,可能没有释放指针

{外部接口}
procedure Show_DzlxSet();
begin
if not Assigned(frmDzlxSet) then
frmDzlxSet := tfrmDzlxSet.Create(Application);
try
frmDzlxSet.ShowModal;
finally
frmDzlxSet.Release;
frmDzlxSet := nil;
end;
end;
songlian77 2003-04-18
  • 打赏
  • 举报
回复
你在OnClose的事件里寫上Action := CaFree;
Frend 2003-04-18
  • 打赏
  • 举报
回复
up
ehom 2003-04-18
  • 打赏
  • 举报
回复
释放了占用内存不等于指针就指向了nil
anh 2003-04-18
  • 打赏
  • 举报
回复
同意 boz(波)大利 的说法,
boz 2003-04-18
  • 打赏
  • 举报
回复
OnClose里Action := CaFree;
OnDestory里form2:=nil;
zhang21cnboy 2003-04-18
  • 打赏
  • 举报
回复
我建议你仔细的去看一下书!

我提醒你一下吧!

一个窗体的被释放,意味着那个窗体占用的资源被释放,但是哪个窗体变量
(句柄)并没有释放!

就好比,你申明了一个变量,假如你没有给哪个变量赋值的话,哪个变量仍然从在,只是

没有意义而已,当你是放了一个窗口之后,哪个窗体变量仍然存在,而且它的值并非是

nil(空)!

学过c++的都知道无效指针很让人头疼,这就是个delphi里面无效指针的例子!

5,939

社区成员

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

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