请问为何一些窗体在FREE后系统资源并未释放 |
尚未結案
|
jackalan
初階會員 發表:20 回覆:88 積分:36 註冊:2003-11-08 發送簡訊給我 |
|
jackalan
初階會員 發表:20 回覆:88 積分:36 註冊:2003-11-08 發送簡訊給我 |
|
Mickey
版主 發表:77 回覆:1882 積分:1390 註冊:2002-12-11 發送簡訊給我 |
|
Chance36
版主 發表:31 回覆:1033 積分:792 註冊:2002-12-31 發送簡訊給我 |
|
jackalan
初階會員 發表:20 回覆:88 積分:36 註冊:2003-11-08 發送簡訊給我 |
|
Chance36
版主 發表:31 回覆:1033 積分:792 註冊:2002-12-31 發送簡訊給我 |
引言: 谢谢上面两位! Chance36您说的太对了,但因为该窗口很复杂,我也搞不清楚到底要释放什么,有没有什么通用的方法,因为我个人认为一个好的程序除了在完成它全部功能外对系统资源的控制也很重要。。。请指教。jackalan 你好 就我所知的部份,以下敍述供你參考,若有謬誤請各位先進不吝指教 1.所有的.Create 在相對結束位置應該要有.Free的動作,除非物件的OWNER會幇忙釋放 2.相對位置指的是變數(物件)離開可視範圍之前,如在Form.ONCreate 建立,至少在Form.Destory要釋放,在程序內建立者則離開程式前要釋放(注意If判斷不要有漏洞及Exit或Break宊然跳離的動作) 3.動態Form的建立若Owner為Applcation則你可不用理它,Application會釋放的,或自行釋放亦可 4.動態Form的建立若Owner為nil則必須自行釋放,最好用完就釋放,除非你會多次使用,但要注意不可重複建立(加個If Not Assigned(xxx) Then ...) 5.你有用New或GetMem..Alloc??? ...等記憶體的配置的功能同樣要在相對位置予以釋放 6.對於Record型態,若其內元素僅是一些Delphi的基本型態如Integer,Double,String,PChar等可以不用理它,若其內包File,TObject..則最好還是要有釋放的動作。 我也從來沒有如此整理過這個注意事項,僅以目前想到的隨手記錄下來,希望還有點幫助。若有遺漏,亦請各位先進予以加強補充。先行謝過!謝謝!! |
jackalan
初階會員 發表:20 回覆:88 積分:36 註冊:2003-11-08 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |