我使用以下两句语句来释放窗体:action;=cafree;form1;=nil
但是我发现第一次打开窗体的时间明显比第二次要来得慢,请问是什么原因?

解决方案 »

  1.   

    应该不会出现这种现象吧.
    第一次慢可能是这个工程刚刚运行,占用了比较多的系统资源
    第二此打开时工程已经稳定运行,再打开一个form就比较节省系统资源了
      

  2.   

    可能是第一次要找你的action要和client联接吧,呵呵,帮你UP!!!
      

  3.   

    我搜索了一下,借兄台这个宝地提个同样关于caFree的问题。请问为什么用caFree呢?caFree是在关闭这个事件动作的,意思就是在关闭窗体后同时结束程序,那可以用Application.Terminate来代替吗?
    先谢!
      

  4.   

    你试试打开word,关闭在打开,看看他们的速度区别。
      

  5.   

    楼主的问题真是很奇怪
    没见过,你写的是多文档的?
    Application.Terminate是关闭整个应用程序
      

  6.   

    这个道理非常简单,当你第一次装载窗体时系统需要为该窗体分配很多资源,所以可能会显得慢一些。然而,当窗体释放后,这些资源会在短时间内存在与临时缓冲区中,而此时如果再装载窗体时会显得比第一次快。你可以做个实验,在你窗体释放后,立即运行一个庞大的程序,过会儿关闭,然后在打开窗体,你会发现和第一次一样的慢。所以问题的原因是“cache” 的存在。
      

  7.   

    to singleboat(一舟) ,caFree最主要应用于MDI(多窗体)中,因为子窗体关闭时默认的动作是Hide,即隐藏,所以如果希望其释放所占用的资源时,就要设定关闭动作,也就是在OnClose事件中加一句Action:=caFree;
    而Application.Terminate正如兄台所说的是关闭整个应用程序。
      

  8.   

    谢谢wizardqi(男巫) !
    原来是在MDI(多窗体)中,子窗体关闭时候默认的动作是Hide,希望释放其占用的资源的时候就要设定关闭动作,在OnClose事件中加入Action:=caFree来实现。
    请问
    点击窗体右上角的那个关闭按钮,跟在窗体上加一个退出按钮写入close代码的时候,点击这个退出按钮时候的动作是一样的吗?