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

請問有關 BCB Create Form 及 Delete Form 的問題

尚未結案
physics
一般會員


發表:11
回覆:11
積分:9
註冊:2002-05-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-04-23 23:57:48 IP:12.40.xxx.xxx 未訂閱
請問一下, 我想在程式 Run 時動態 Create 一個已經設計好的 Form2, 以下是程式碼, 我把以下這一行從 Project1.cpp 裡拿掉, 放到 Button1 Clock 的 event 來: void __fastcall TForm1::Button1Click(TObject *Sender) { Application->CreateForm(__classid(TForm2), &Form2); } //------------------------------------------------------------------- 現在問題是, 如果這個 Form2 不需要了, 想要 "Delete" 掉, 我試了以下的 Code, 是沒問題, 但我實在不知道這樣做 BCB 會不會真的把 Form2 的記憶體 清乾淨, 沒有 Memory Leak? 還是應該用其它的辦法? void __fastcall TForm2::FormClose(TObject *Sender, TCloseAction &Action) { Release(); } //------------------------------------------------------------------ 感謝指教.
jessechan
版主


發表:109
回覆:394
積分:254
註冊:2002-04-05

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-04-24 01:44:30 IP:61.228.xxx.xxx 未訂閱
我認為沒有問題, 但是另一種寫法 #include "Unit2.h" TForm2 *Form2; ...    void __fastcall TForm1::Button1Click(TObject *Sender) {   if (Form2 == NULL)   {     Form2 = new TForm2(NULL);     Form2->Show();   } } //--------------------------------------------------------------------------- void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action) {   if (Form2 != NULL)     delete Form2; } //---------------------------------------------------------------------------    會不會比較保險一點.    Jesse Chan
------
Jesse Chan
physics
一般會員


發表:11
回覆:11
積分:9
註冊:2002-05-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-04-24 05:10:03 IP:12.40.xxx.xxx 未訂閱
是的, 我有想過這樣子做, 但不了解的是, BCB 在下以下指令時, 是不是有做了比 new Form2 更多的事, 以保持其系統的完整性 (Integrity), Application->CreateForm(__classid(TForm2), &Form2); 如果有的話, 那麼簡單的 delete Form2 恐怕沒辦法清除掉其所有配置的記憶體, 要用其內建的指令才行, 例如我猜的 Form2->Release(); 還是我想太多了?
jessechan
版主


發表:109
回覆:394
積分:254
註冊:2002-04-05

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-04-24 09:44:55 IP:203.75.xxx.xxx 未訂閱
我想在你的需求中沒什麼差別, 因為多作的事情包括了判斷是不是啟動的 Form, 需不需要得到 focus 等, 都是可以自己控制的.    Jesse Chan
------
Jesse Chan
系統時間:2024-05-06 0:20:18
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!