经过这段时间对delphi中free 和 release 的仔细学习,先总结如下:
1。form.free直接释放资源后,调用OnDestroy事件,但是没有将form指针改为nil
2。form.release 等待资源不再使用后释放资源,同样不修改form指针为nil,所以在destroy中最好使用    release进行资源释放操作。
3。局部变量释放资源时,可以考虑用freeandnil()释放资源,这样效率会高些,能提高内存的利用率
4。在对窗体操作时,单纯通过assigned(form1)判断窗体是否已经创建是不够的,因为如果窗体通过free   /release进行资源释放的话,form1指向的是一个未知地址,而非nil,所以需要用(not    Assigned(ShowForm)) and (not (ShowForm is  TForm2)) 来判断该窗体是否已经创建在内存中

转载于:https://www.cnblogs.com/jxgxy/archive/2012/02/29/2373123.html

Delphi中destroy, free, freeAndNil, release用法和区别相关推荐

  1. 转:Delphi中destroy, free, freeAndNil, release用法和区别

    http://blog.sina.com.cn/s/blog_44fa172f0101cur1.html 1)destroy:虚方法 释放内存,在Tobject中声明为virtual,通常是在其子类中 ...

  2. oracle中drop和delete,oracle中delete drop truncate的用法和区别

    数据库的运维中,经常会遇到delete drop truncate的操作,那么如何去把握它们的用法和区别呢? 比如当数据库空间爆满,已经增长到存储空间单个存储文件的最大值32G.你需要通过一些办法释放 ...

  3. Numpy 中 linspace 和 arrange 的用法和区别

    在绘图或者计算函数值的时候,我们常常需要生成一些序列,比如生成 0~1000 之间的整数.这时,我们经常用到 Numpy 中的 linspace 和 arange 函数.然而稍不注意,两者就容易用错, ...

  4. 【Unity3D日常开发】Unity中Destroy()函数 和 DestroyImmediate()函数的区别

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有 ...

  5. Visual Studio 中Debug模式和Release模式的区别

    引用文章:Visual Studio中Debug和Release的区别 https://www.cnblogs.com/darrenji/p/3907004.html

  6. Perl中use、require的用法和区别

    2019独角兽企业重金招聘Python工程师标准>>> Exporter Module usage                                           ...

  7. 详解在group by分组查询中where 和 having的用法和区别。

    我地都知道sql 中 where 和 having 都是用来筛选条件的关键字. 而且having 一般和group by 一齐使用,   但是where 也可以用group by 一齐使用的. 下面用 ...

  8. 转Delphi中Create(nil),Create(self),Create(Application)区别

    转自:http://blog.csdn.net/haiou327/article/details/8591123 [delphi] view plaincopy Create(nil);//需要自己释 ...

  9. 在Linux中su和sudo区别,Linux中su和sudo的用法和区别

    目录 sudo sudo:暂时切换到超级用户模式以执行超级用户权限,提示输入密码时该密码为当前用户的密码,而不是超级账户的密码.缺点是每次执行超级用户权限都要在命令前加上 sudo ,优点是在当前终端 ...

最新文章

  1. 九度OJ 区间问题 10000个随机正负数生成
  2. 原型模式的应用场景_23中设计模式(上)
  3. 1067: [SCOI2007]降雨量
  4. 熊猫数据集_用熊猫掌握数据聚合
  5. 操作系统死机的12个问题
  6. python数据分析是什么意思_选择python进行数据分析的理由和优势
  7. 解决 ssh 登录到ubuntu server 慢的问题
  8. Python升级后ssl模块不可用问题解决和浅析
  9. “我曾经的小项目比我在软件行业十年产生的影响还要大”
  10. java轮播图_RxJava 实现ViewPager的轮播图
  11. 达州2022年9大科技计划项目申报方向、周期、要求汇编大全
  12. 一洽客服客户试用转化率100%
  13. 民数记研读1——于宏洁
  14. html 跑步比赛小游戏,小班游戏教案:跑步比赛
  15. JVM虚拟机相关知识
  16. 平均成绩是计算数学计算机英语三门,创建一个查询,计算并显示“学号”和“平均成绩”两个字段内容,其中平均成绩 是计算数学、计算机和英语_开卷宝...
  17. SQL注入的成因及原理浅析
  18. Qt串口通信实时曲线上位机源代码
  19. spyder pyecharts不显示_逆袭的IGZOIPS!微星电竞显示器新品评测:色彩好且拖影少...
  20. 哥德尔不完全性定理:现代数学的边界

热门文章

  1. c#点击按钮调出另一个窗体_在类库或winform项目中打开另一个winform项目窗体的方法...
  2. pythonnumpy详解_Python:Numpy详解
  3. jfianl中 解决jetty Form too large
  4. redis服务端的maxclient和最大连接空闲时间设置
  5. [VB]使用ADOX创建Excel文件
  6. 用treeview遍历文件夹(vb)
  7. VB中字符串匹配的多种方式
  8. GitHub五万星中文资源:命令行技巧大合集,新老司机各取所需
  9. 百度云2019落地第一枪打响:两款智能边缘硬件,让城市环卫、农药喷洒都AI起来...
  10. Facebook开源移动端深度学习加速框架,比TensorFlow Lite快一倍