Delphi Create(nil), Create(self), Create(Application)的區別


Delphi Create(nil), Create(self), Create(Application)的區別

最近的項目中經常在程序中動態創建控件,勢必用到Create。

但是隨之而來的問題就是動態創建的控件是否可以正確的釋放內存?

以及 Create(nil), Create(self), Create(Application)的區別又是什么呢?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Create( nil ); //需要自己釋放
    
Create(Self); //當Self釋放時自動觸發釋放
 
Create(Application); //當Application釋放時自動釋放
 
Create( nil ); //這種方式創建的對象要自己手工進行FREE才會回收內存
//其他很多內存泄漏就是忘了手工釋放內存
 
Create(Self); //由self對象負責釋放創建的對象,只要self沒有釋放掉
//這個對象的內存就不會被釋入掉,除程序員手工進行釋放,他會觸發很多事件。
//性能不是很好
 
Create(Application);
Create(Application . owner);  //這兩就是把self具體對象罷了

memory_overflow

 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM