全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1724
推到 Plurk!
推到 Facebook!

哪方法釋放memory才是最好

尚未結案
raylau
一般會員


發表:11
回覆:12
積分:4
註冊:2002-10-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-10-30 12:24:25 IP:202.175.xxx.xxx 未訂閱
form.Create;      |  formCloseEvent(Action); form.ShowModal;   |  Action:=caFree;          form.free;        |  請問大家form.Free 和 Action:=caFree(在form close event 中的方法) 哪個方法較好,究竟有什麼分別. 我覺得Action:=caFree 好像釋放memory不夠form.free多.    多謝指教.
------
Crazy~Ray
raylau
一般會員


發表:11
回覆:12
積分:4
註冊:2002-10-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-10-30 12:42:36 IP:202.175.xxx.xxx 未訂閱
還有一問題.如果我的form 是繼承下來的, 哪麼如用Action:=caFree的話.是不是只要在 Parent form 做就可以. 還是要到各繼承下來的form 都要做Action:=caFree Thanks. Give any suggestions la. Ray Crazy~Ray (@.@)
------
Crazy~Ray
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-10-30 23:18:48 IP:210.3.xxx.xxx 未訂閱
I don't think there is any need for the inherited formsto write code in the form close event. IMHO, all methods should be able to free the resource and it should make little difference in using different methods. IMHO, I prefer the FreeAndNil function provided in SysUtils since by making the variable nil can remind me that it is an empty object.
ccchen
版主


發表:61
回覆:940
積分:1394
註冊:2002-04-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-10-31 07:37:51 IP:61.219.xxx.xxx 未訂閱
Form.free和action:=caFree 是一樣的, 請參考 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=21928 ChildForm會繼承parent之method當然不用再做一次
Emulator
一般會員


發表:1
回覆:18
積分:8
註冊:2002-10-17

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-11-03 03:56:00 IP:61.59.xxx.xxx 未訂閱
有一個小小的狀況~~:p 如果是在屬於該Form的任何成員需要呼叫使Form被釋放.. 請愛用release..:) 我忘了從哪學來的..懂的人麻煩解釋一下吧.XD = Delphi - Emulator =
------
= Delphi - Emulator =
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-11-05 12:13:36 IP:147.8.xxx.xxx 未訂閱
In simple words, Release will tell the form to free itself after it has processed all events (e.g. OnClose, OnCloseQuery, etc.) while Free will destroy the form immediately without further processing.
Emulator
一般會員


發表:1
回覆:18
積分:8
註冊:2002-10-17

發送簡訊給我
#7 引用回覆 回覆 發表時間:2002-11-06 08:56:28 IP:61.59.xxx.xxx 未訂閱
mm..感謝指導..m(_ _)m = Delphi - Emulator =
------
= Delphi - Emulator =
c905165
中階會員


發表:50
回覆:120
積分:54
註冊:2002-09-29

發送簡訊給我
#8 引用回覆 回覆 發表時間:2002-11-13 02:51:47 IP:203.204.xxx.xxx 未訂閱
請問一個問題, 如果我目前正在form3 而如果想要「回主畫面」的話,利用form3.close;即可,這樣下一次再form3.show時,仍然會出現目前的「記憶」。 但是如果想要「reset」而使用form3.free,卻會發生錯誤,因為在自己的form不能將自己free,這要怎麼辦?
------
有困難就是能力不足,有麻煩就是方法不對... 劣者總是遇到困難,也時常出現麻煩
ccchen
版主


發表:61
回覆:940
積分:1394
註冊:2002-04-15

發送簡訊給我
#9 引用回覆 回覆 發表時間:2002-11-13 08:03:18 IP:61.219.xxx.xxx 未訂閱
但是如果想要「reset」而使用form3.free,卻會發生錯誤,因為在自己的form不能將自己free,這要怎麼辦? 可以用close, 在onClose加上action:=cafree;
系統時間:2024-11-24 17:18:11
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!