線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2036
推到 Plurk!
推到 Facebook!

Form Close和Form Destroy在程式關閉時都會執行到嗎?

答題得分者是:tech_state
danielj
初階會員


發表:65
回覆:135
積分:40
註冊:2003-06-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-09 10:38:45 IP:61.220.xxx.xxx 未訂閱
小弟在程式結束後發現錯誤,猜想可能的原因是Form Close及Form Destroy都會被執行到的關係,不知道是不是如此? 我的Form Close及Form Destroy都是做相同的事情 1. 關閉Form 2. 刪除記憶體
tech_state
版主


發表:44
回覆:638
積分:641
註冊:2003-02-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-07-09 11:03:32 IP:61.221.xxx.xxx 未訂閱
danielj, 您好 以下資料是由Help檔找出來的,供您參考。 Use OnDestroy to perform special processing when the form is destroyed. Either implement this event or override the destructor of the class, but not both. This event should destroy any objects created in the OnCreate event.
void __fastcall TForm1::FormCreate(TObject *Sender)    {
  LogoBmp = new Graphics::TBitmap();
  LogoBmp->LoadFromFile("Logo.Bmp");
}    void __fastcall TForm1::FormDestroy(TObject *Sender)    {
  delete LogoBmp;
}
我也測試過,關閉Form時,Form Close及Form Destroy都會被執行。 只是我比較好奇的一點是,為什麼當同的事情您要做二次呢? ================================= 涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 是非終日有,不聽自然無 天下本無事,庸人自擾之 發表人 - tech_state 於 2003/07/09 11:06:18
danielj
初階會員


發表:65
回覆:135
積分:40
註冊:2003-06-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-07-09 12:39:46 IP:61.220.xxx.xxx 未訂閱
多謝tech_state 大哥的回覆! 我不知道這兩個都會被執行到,所以怕萬一那一個沒執行到,而我刪除記憶體的程式正好在那裡的話,可能就不太好。
axHard
一般會員


發表:0
回覆:3
積分:0
註冊:2003-07-02

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-07-10 10:08:10 IP:61.218.xxx.xxx 未訂閱
引言: 多謝tech_state 大哥的回覆! 我不知道這兩個都會被執行到,所以怕萬一那一個沒執行到,而我刪除記憶體的程式正好在那裡的話,可能就不太好。
danielj兄: tech_state是個漂亮的美眉,非男兒身呀!
danielj
初階會員


發表:65
回覆:135
積分:40
註冊:2003-06-11

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-07-10 13:26:15 IP:61.220.xxx.xxx 未訂閱
哦!tech_state抱歉,從名字上看不出來,有得罪之處尚請海涵! 也希望以後tech_state"大姐"能繼續給予指導,謝謝! 也謝謝axHard大哥(不知道是不是)的提醒!
brant
一般會員


發表:1
回覆:64
積分:23
註冊:2003-04-07

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-07-11 14:26:37 IP:202.145.xxx.xxx 未訂閱
引言: 我也測試過,關閉Form時,Form Close及Form Destroy都會被執行。 只是我比較好奇的一點是,為什麼當同的事情您要做二次呢?
我的印象中是這樣的: OnDestroy 是對應到 WM_DESTROY 的處理 OnClose 是對應到 WM_CLOSE 的處理 以正常的方法關閉程式是呼叫 WM_CLOSE windows 預設處理 WM_CLOSE 裡面會再去觸發 WM_DESTROY 但是如果是別的程式用 TerminateProcess 來關掉這隻程式的話 則會直接傳來 WM_DESTROY 而不經過 WM_CLOSE
系統時間:2024-09-08 8:58:50
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!