1. 关闭一个窗口有几种方式:最小化这个窗口,隐藏这个窗口,释放这个窗口,这句话就是说但这个窗口关闭的时候释放这个窗口,它应该是在form的onclose事件里面的
    2. 就是form.onclose()
       begin
        Action:=cafree;
       end;它的做用是不是相当于form.relase或form.free?
    3. procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
      begin
        action:=cafree; //TCloseAction = (caNone, caHide, caFree, caMinimize);end;
      其中action有四种取值按顺风序分别:什么也不做,隐藏,释放,最小化
      action代表当触发窗体OnClose事件时,以哪种方式去响应!
    4. 其实你看一下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;
      也可以是由你的代码调用
    5. 当form.onclose事件触发时,action参数会取一个值,缺省情况它取caMinimize,因为传参caMinimize的结果不会影响到一分配的类型指针空间,不然,可能会因为内存使用错误导致内存泄漏。
    6. 当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;
    7. 在OnClose 事件中
      Free;

      self.Free;
      有什么区别?
    8. vcmfc,great123,冰棍他妈的老B真难操
      vcmfc,great123,再操冰棍他妈的B----大贱B
      vcmfc,great123,冰棍,你妈是我干的!真的!
      vcmfc,great123,冰棍,Mda在床上等我,怎么办?
      vcmfc,great123,冰棍,Mda叫我晚上去操她!
      vcmfc,great123,冰棍,你老妈前几天跟一条狗搞在一起呀!!
      vcmfc,great123,冰棍,你老妈前几天被狗操翻了

能详细说一下action:=cafree这句吗?好多书都没说清楚!的更多相关文章

  1. 转delphi中 formclose的事件 action:=cafree form:=nil分别是什么意思?

    转自:http://www.cnblogs.com/jshchg/articles/1929894.html MDI子窗体关闭时用到的(以下摘自Delphi的帮助)caNone  The form i ...

  2. delphi中 formclose的事件 action:=cafree form:=nil分别是什么意思?

    MDI子窗体关闭时用到的(以下摘自Delphi的帮助)caNone  The form is not allowed to close, so nothing happens.caHide  The ...

  3. 使用MFC开发有十多年了,结合自身的体会,随便说几句(不能样样都依赖别人,C体系的人,绝对不怕人踢馆)

    挺长时间了吧,这个帖子还没沉下去,使用MFC开发有十多年了,结合自身的体会,随便说几句:1.MFC是一个C++的基础类库,封装了绝大多数的API函数,主要是用来创建带UI的应用程序,服务端程序或着不带 ...

  4. mysql中char与varchar的区别分析(补充一句,int和integer没区别)

    转自:http://www.jb51.net/article/23575.htm 在mysql教程中char与varchar的区别呢,都是用来存储字符串的,只是他们的保存方式不一样罢了,char有固定 ...

  5. [YII2] 修改默认控制器Controller以及默认方法Action

    试了好多方法都没成功,下面方法绝对能成功设置 在框架里面有源码,在/vendor/yiisoft/yii2/web/Application.php的第34行找到了: class Application ...

  6. windows类书的学习心得(转载)

    原文网址:http://www.blogjava.net/sound/archive/2008/08/21/40499.html 现在的计算机图书发展的可真快,很久没去书店,昨日去了一下,真是感叹万千 ...

  7. windows类书的学习心得

    原文网址:http://www.blogjava.net/sound/archive/2008/08/21/40499.html 现在的计算机图书发展的可真快,很久没去书店,昨日去了一下,真是感叹万千 ...

  8. textarea 带换行符保存数据与带换行符展示数据

    毕业设计进行ing~ 最近要想要实现一个站内邮箱,想要带换行地输出邮件主体内容. 这两天为了解决这个问题百度了好多东西,发现相关问题有很多记录,可能这确实是大多数初学者也碰到的问题.自己找了好多地方都 ...

  9. 数据库表设计时一对一关系存在的必要性 数据库一对一、一对多、多对多设计 面试逻辑题3.31 sql server 查询某个表被哪些存储过程调用 DataTable根据字段去重 .Net Core Cors中间件解析 分析MySQL中哪些情况下数据库索引会失效

    数据库表设计时一对一关系存在的必要性 2017年07月24日 10:01:07 阅读数:694 在表设计过程中,我无意中觉得一对一关系觉得好没道理,直接放到一张表中不就可以了吗?真是说,网上信息什么都 ...

随机推荐

  1. MyBatis 报错org.apache.ibatis.session.defaults.DefaultSqlSessionFactory.openSessionFromDataSource

    报错如下: org.apache.ibatis.exceptions.PersistenceException: ### Error opening session. Cause: java.lang ...

  2. CentOS7 xrdp 安装和设置

    1) 安装 $ sudo yum install xrdp $ sudo yum install tigervnc $ sudo yum install tigervnc-server 2) 设置密码 ...

  3. 查看 SharePoint Server 中的所有网站集

    网站集是具有同一所有者并共享管理设置(例如权限和配额)的一组网站.网站集是在 Web 应用程序中创建的.创建网站集时,将自动在网站集中创建一个首要网站.然后,可以在首要网站下创建一个或多个子网站.首要 ...

  4. vue插件——滚动监听 vue-scrollwatch

    造轮子的目的: 做项目的时候需要一个滚动监听的功能,html结构已经都写好了,不想使用vue组件的方式来写,因为不想改造html结构,于是花了几个小时做了一个简单的,使用vue指令方式来做的,项目上够 ...

  5. Linux( Ubantu ) 的简单使用

    1.Linux常用的快捷键 Ctrl + Alt+ T --打开终端 Ctrl + Shift + C --复制 Ctrl + Shift + V --粘贴 Ctrl + Shift + A --光标 ...

  6. numpy常用矩阵操作

    1.删除列 column_to_delete = [0, 1, 2] arr = np.delete(arr, [0, 1, 2], axis=1) 2.归一化 arr = normalize(arr ...

  7. Program Transformation Semantics (程序转换语义学)

    本文是Inside The C++ Object Model Chapter 2 部分的读书笔记.讨论编译器调用拷贝构造函数时的策略(如何优化以提高效率),侯捷称之为"程序转化的语义学&qu ...

  8. HDU 5335 Walk Out BFS 比较坑

    H - H Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit Status ...

  9. BZOJ 4814 Luogu P3699 [CQOI2017]小Q的草稿 (计算几何、扫描线、set)

    题目链接 (BZOJ) http://lydsy.com/JudgeOnline/problem.php?id=4814 (Luogu) https://www.luogu.org/problem/P ...

  10. AcWing:146. 序列(小根堆 + 数学归纳 + 贪心)

    给定m个序列,每个包含n个非负整数. 现在我们可以从每个序列中选择一个数字以形成具有m个整数的序列. 很明显,我们一共可以得到nmnm个这种序列, 然后我们可以计算每个序列中的数字之和,并得到nmnm ...