Delphi中destroy, free, freeAndNil, release用法和区别
经过这段时间对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用法和区别相关推荐
- 转:Delphi中destroy, free, freeAndNil, release用法和区别
http://blog.sina.com.cn/s/blog_44fa172f0101cur1.html 1)destroy:虚方法 释放内存,在Tobject中声明为virtual,通常是在其子类中 ...
- oracle中drop和delete,oracle中delete drop truncate的用法和区别
数据库的运维中,经常会遇到delete drop truncate的操作,那么如何去把握它们的用法和区别呢? 比如当数据库空间爆满,已经增长到存储空间单个存储文件的最大值32G.你需要通过一些办法释放 ...
- Numpy 中 linspace 和 arrange 的用法和区别
在绘图或者计算函数值的时候,我们常常需要生成一些序列,比如生成 0~1000 之间的整数.这时,我们经常用到 Numpy 中的 linspace 和 arange 函数.然而稍不注意,两者就容易用错, ...
- 【Unity3D日常开发】Unity中Destroy()函数 和 DestroyImmediate()函数的区别
推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有 ...
- Visual Studio 中Debug模式和Release模式的区别
引用文章:Visual Studio中Debug和Release的区别 https://www.cnblogs.com/darrenji/p/3907004.html
- Perl中use、require的用法和区别
2019独角兽企业重金招聘Python工程师标准>>> Exporter Module usage ...
- 详解在group by分组查询中where 和 having的用法和区别。
我地都知道sql 中 where 和 having 都是用来筛选条件的关键字. 而且having 一般和group by 一齐使用, 但是where 也可以用group by 一齐使用的. 下面用 ...
- 转Delphi中Create(nil),Create(self),Create(Application)区别
转自:http://blog.csdn.net/haiou327/article/details/8591123 [delphi] view plaincopy Create(nil);//需要自己释 ...
- 在Linux中su和sudo区别,Linux中su和sudo的用法和区别
目录 sudo sudo:暂时切换到超级用户模式以执行超级用户权限,提示输入密码时该密码为当前用户的密码,而不是超级账户的密码.缺点是每次执行超级用户权限都要在命令前加上 sudo ,优点是在当前终端 ...
最新文章
- 九度OJ 区间问题 10000个随机正负数生成
- 原型模式的应用场景_23中设计模式(上)
- 1067: [SCOI2007]降雨量
- 熊猫数据集_用熊猫掌握数据聚合
- 操作系统死机的12个问题
- python数据分析是什么意思_选择python进行数据分析的理由和优势
- 解决 ssh 登录到ubuntu server 慢的问题
- Python升级后ssl模块不可用问题解决和浅析
- “我曾经的小项目比我在软件行业十年产生的影响还要大”
- java轮播图_RxJava 实现ViewPager的轮播图
- 达州2022年9大科技计划项目申报方向、周期、要求汇编大全
- 一洽客服客户试用转化率100%
- 民数记研读1——于宏洁
- html 跑步比赛小游戏,小班游戏教案:跑步比赛
- JVM虚拟机相关知识
- 平均成绩是计算数学计算机英语三门,创建一个查询,计算并显示“学号”和“平均成绩”两个字段内容,其中平均成绩 是计算数学、计算机和英语_开卷宝...
- SQL注入的成因及原理浅析
- Qt串口通信实时曲线上位机源代码
- spyder pyecharts不显示_逆袭的IGZOIPS!微星电竞显示器新品评测:色彩好且拖影少...
- 哥德尔不完全性定理:现代数学的边界
热门文章
- c#点击按钮调出另一个窗体_在类库或winform项目中打开另一个winform项目窗体的方法...
- pythonnumpy详解_Python:Numpy详解
- jfianl中 解决jetty Form too large
- redis服务端的maxclient和最大连接空闲时间设置
- [VB]使用ADOX创建Excel文件
- 用treeview遍历文件夹(vb)
- VB中字符串匹配的多种方式
- GitHub五万星中文资源:命令行技巧大合集,新老司机各取所需
- 百度云2019落地第一枪打响:两款智能边缘硬件,让城市环卫、农药喷洒都AI起来...
- Facebook开源移动端深度学习加速框架,比TensorFlow Lite快一倍