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

Form釋放記憶體的問題

尚未結案
wu330033
一般會員


發表:29
回覆:28
積分:11
註冊:2007-10-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-07-03 17:27:48 IP:218.170.xxx.xxx 訂閱
假設我目前有From1 跟 Form2 ...
Form1設定為auto-create Form
Form2為Available Form ...
在程式啟動時直接執行Form1 ... 然後Form2可能透過Form1上的Button來控制顯示時機!!
使用底下程式碼來執行 ...
TForm2 *Form2;
Form2 = new TFrom2(Application);
Form2->Show();

然後在Form2的OnClose事件加入 Action = caFree;

..............................
請問一下,如果我開了
Form1然後再開了From2
關閉時的順序若是先關
From2再關Form1就不會出錯
但若是先關了Form1就會出錯...請問這要怎樣解決呢?

我的想法是在
Form1的OnClose事件加入
if (Form2 != NULL) {
Form2->FormClose();
}

藉此執行Form2的OnClose事件
但會出現錯誤訊息
E2193 Too few parameters in call to '_fastcall TSWT::FormClose(TObject *,TCloseAction &)'
請問這該怎麼解決呢?
還是說有更好的辦法呢?
編輯記錄
wu330033 重新編輯於 2009-07-03 17:29:14, 註解 無‧
herbert2
尊榮會員


發表:58
回覆:640
積分:894
註冊:2004-04-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-07-08 00:03:54 IP:211.72.xxx.xxx 訂閱
改用 Form2 = new TFrom2(this); 試一下, 或可解決.
如此, 當 Form1 Close 時, 因 Form2 之 Owner 為 Form1, 便會一併先被 Close.
編輯記錄
herbert2 重新編輯於 2009-07-08 00:06:51, 註解 無‧
系統時間:2024-04-25 4:26:07
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!