当前位置:编程学习 > Delphi >>

delphi中关于free的应用,要再什么样的前提条件下才可以对窗体进行free呢?

在关闭按钮中用close或hide来关闭窗体内存总是不会释放,导致之前关闭的时候窗体中的一些非初始化数据一直停留在窗体中,下次显示窗体这些数据也还在,那么如何用free将关闭的窗体释放掉,以达到下次打开窗体的时候又是初始化的状态呢?
补充:我需要的是能够正常执行free方法办法,并不是不知道如何能达到初始化的目的,我需要学会使用free方法
追问:看了你的回答我已经摸到一点方法了,但是有个概念有点模糊
我现在做的窗口都是在写代码的时候直接建立的,运行的时候也是直接调用窗口的show或showmodule方法来显示窗口,没用过create方法,这样是属于哪种呢?我就是对这个概念模糊。。。
一般情况下最好的显示窗体的方法是什么呢?用您这样的办法达到初始化的效果和直接用free来实现总得说来free的代码量应该会小很多的。。。。
答案:记住一个原则就行了,谁创建谁释放。
如果是自动创建的窗体或者是你通过代码创建但已委托给其它控件的窗体(即有指定owner),你就没必要去释放。
其它情况下,都是要你自己释放。
一般情况下在整个系统运行期间一直存在的窗体,那可以选择自动创建。
其它情况下,一般是通过代码动态创建,在创建的时候不指定owner的则需要在你使用结束后调用free。
其他:在关闭按钮中用close或hide来关闭窗体内存总是不会释放,导致之前关闭的时候窗体中的一些非初始化数据一直停留在窗体中,下次显示窗体这些数据也还在,那么如何用free将关闭的窗体释放掉,以达到下次打开窗体的时候又是初始化的状态呢? 在窗体的create事件中初始化。这样每次打开窗体,同事就作了初始化工作。 在窗体的 FormClose 事件里面 写上  Action:=caFree  关闭窗体时就将窗体给释放掉了。 

上一个:小弟不才请大哥教一下 delphi的问题,解释详细加分50
下一个:我想问一下Delphi与VB运行库的内容

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,