能详细说一下action:=cafree这句吗?好多书都没说清楚!
- 关闭一个窗口有几种方式:最小化这个窗口,隐藏这个窗口,释放这个窗口,这句话就是说但这个窗口关闭的时候释放这个窗口,它应该是在form的onclose事件里面的
- 就是form.onclose()
begin
Action:=cafree;
end;它的做用是不是相当于form.relase或form.free? - procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
action:=cafree; //TCloseAction = (caNone, caHide, caFree, caMinimize);end;
其中action有四种取值按顺风序分别:什么也不做,隐藏,释放,最小化
action代表当触发窗体OnClose事件时,以哪种方式去响应! - 其实你看一下Forms单元的代码
forms.pas的4513行就明白了
procedure TCustomForm.Close;
var
CloseAction: TCloseAction;
begin
if fsModal in FFormState then
ModalResult := mrCancel
else
if CloseQuery then
begin
if FormStyle = fsMDIChild then
if biMinimize in BorderIcons then
CloseAction := caMinimize else
CloseAction := caNone
else
CloseAction := caHide;
DoClose(CloseAction);
if CloseAction <> caNone then
if Application.MainForm = Self then Application.Terminate
else if CloseAction = caHide then Hide
else if CloseAction = caMinimize then WindowState := wsMinimized
else Release;
end;
end;
当等于caFree时就Release;
而Close是响应WM_CLOSE调用的
forms.pas的4093行
procedure TCustomForm.WMClose(var Message: TWMClose);
begin
Close;
end;
也可以是由你的代码调用 - 当form.onclose事件触发时,action参数会取一个值,缺省情况它取caMinimize,因为传参caMinimize的结果不会影响到一分配的类型指针空间,不然,可能会因为内存使用错误导致内存泄漏。
- 当form.onclose事件触发时,action参数会取一个值,缺省情况它取caMinimize,因为传参caMinimize的结果不会影响到已分配的类型实例指针空间,不然,可能会因为内存使用错误导致内存泄漏。
如果action:=cafree 就把分配给Tform类型实例的内存空间释放,但是,这仍然是不可靠的,因为,form实例的指针仍然指向这个内存地址,所以你必须在form.ondestroy事件中写如下代码:form:=nil;
这就完了吗?NO!
现在,你无法将它再实例化了,So,你在从新实例化它之前,必须如下:
if not assigned(form) then
form:=Tform.create(self);
form.show; - 在OnClose 事件中
Free;
和
self.Free;
有什么区别? - vcmfc,great123,冰棍他妈的老B真难操
vcmfc,great123,再操冰棍他妈的B----大贱B
vcmfc,great123,冰棍,你妈是我干的!真的!
vcmfc,great123,冰棍,Mda在床上等我,怎么办?
vcmfc,great123,冰棍,Mda叫我晚上去操她!
vcmfc,great123,冰棍,你老妈前几天跟一条狗搞在一起呀!!
vcmfc,great123,冰棍,你老妈前几天被狗操翻了
能详细说一下action:=cafree这句吗?好多书都没说清楚!的更多相关文章
- 转delphi中 formclose的事件 action:=cafree form:=nil分别是什么意思?
转自:http://www.cnblogs.com/jshchg/articles/1929894.html MDI子窗体关闭时用到的(以下摘自Delphi的帮助)caNone The form i ...
- delphi中 formclose的事件 action:=cafree form:=nil分别是什么意思?
MDI子窗体关闭时用到的(以下摘自Delphi的帮助)caNone The form is not allowed to close, so nothing happens.caHide The ...
- 使用MFC开发有十多年了,结合自身的体会,随便说几句(不能样样都依赖别人,C体系的人,绝对不怕人踢馆)
挺长时间了吧,这个帖子还没沉下去,使用MFC开发有十多年了,结合自身的体会,随便说几句:1.MFC是一个C++的基础类库,封装了绝大多数的API函数,主要是用来创建带UI的应用程序,服务端程序或着不带 ...
- mysql中char与varchar的区别分析(补充一句,int和integer没区别)
转自:http://www.jb51.net/article/23575.htm 在mysql教程中char与varchar的区别呢,都是用来存储字符串的,只是他们的保存方式不一样罢了,char有固定 ...
- [YII2] 修改默认控制器Controller以及默认方法Action
试了好多方法都没成功,下面方法绝对能成功设置 在框架里面有源码,在/vendor/yiisoft/yii2/web/Application.php的第34行找到了: class Application ...
- windows类书的学习心得(转载)
原文网址:http://www.blogjava.net/sound/archive/2008/08/21/40499.html 现在的计算机图书发展的可真快,很久没去书店,昨日去了一下,真是感叹万千 ...
- windows类书的学习心得
原文网址:http://www.blogjava.net/sound/archive/2008/08/21/40499.html 现在的计算机图书发展的可真快,很久没去书店,昨日去了一下,真是感叹万千 ...
- textarea 带换行符保存数据与带换行符展示数据
毕业设计进行ing~ 最近要想要实现一个站内邮箱,想要带换行地输出邮件主体内容. 这两天为了解决这个问题百度了好多东西,发现相关问题有很多记录,可能这确实是大多数初学者也碰到的问题.自己找了好多地方都 ...
- 数据库表设计时一对一关系存在的必要性 数据库一对一、一对多、多对多设计 面试逻辑题3.31 sql server 查询某个表被哪些存储过程调用 DataTable根据字段去重 .Net Core Cors中间件解析 分析MySQL中哪些情况下数据库索引会失效
数据库表设计时一对一关系存在的必要性 2017年07月24日 10:01:07 阅读数:694 在表设计过程中,我无意中觉得一对一关系觉得好没道理,直接放到一张表中不就可以了吗?真是说,网上信息什么都 ...
随机推荐
- MLE vs MAP: the connection between Maximum Likelihood and Maximum A Posteriori Estimation
Reference:MLE vs MAP. Maximum Likelihood Estimation (MLE) and Maximum A Posteriori (MAP), are both a ...
- CNN for NLP
卷积神经网络在自然语言处理任务中的应用.参考链接:Understanding Convolutional Neural Networks for NLP(2015.11) Instead of ima ...
- Java常用类(一)Math类和Random类
一.Math类 Math类中有一些常用的数学函数,比较简单,不进行详细解释,仅举例说明: 1.绝对值和取整 import java.lang.Math; public class Mat { publ ...
- Oracle之:Function :getcurrdate()
getdate()函数连接请戳这里 create or replace function getcurrdate(i_date date) return date is v_date date; v_ ...
- 什么是http协议(一)
http协议是大家在互联网中最为熟悉的协议,只要上网大家都会遇到,但是,很多人被问道什么是http协议,http协议的内容是什么就懵了.这里,我们随便聊聊http协议. 首先,我们说说协议.我一直觉得 ...
- Java开发工具汇总
1. Arthas 是Alibaba开源的Java诊断工具 Java动态追踪,对生产环境出现出现bug的情况下,无法调试处理问题,可以借鉴该工具进行问题分析. 原理介绍:Java动态追踪技术探究 Ar ...
- HDU 6045 - Is Derek lying | 2017 Multi-University Training Contest 2
/* HDU 6045 - Is Derek lying [ 分析 ] 题意: 有N个问题, 每个问题有A,B,C三种答案,答对加一分,答错不加分 给出甲乙两人的答案,给出两人的分数先x, y,问分数 ...
- 部署LVS-DR集群
设置Proxy代理服务器的VIP和DIP [root@proxy ~]# cd /etc/sysconfig/network-scripts [root@proxy network-scripts]# ...
- 树的计数 + prufer序列与Cayley公式(转载)
原文出处:https://www.cnblogs.com/dirge/p/5503289.html 树的计数 + prufer序列与Cayley公式 学习笔记(转载) 首先是 Martrix67 的博 ...
- npm脚本编译代码
echo offset codeUrl=D:\svn\oppo_mis\OCSS_NEW\Branches\ProjectCode20190909\h5_ocssset publishUrl=D:\P ...