Delphi中destroy, free, freeAndNil, release用法和區別

來源:互聯網
上載者:User

經過這段時間對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)) 來判斷該表單是否已經建立在記憶體中

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.