Form1 呼叫 Form2 ,但是 Form2 的物件無法釋放??? |
尚未結案
|
eric888
一般會員 發表:9 回覆:3 積分:2 註冊:2004-09-29 發送簡訊給我 |
|
rogan321
高階會員 發表:21 回覆:307 積分:200 註冊:2003-05-15 發送簡訊給我 |
Hi~eric888
試試這個方法~
void __fastcall TForm2::FormClose(TObject *Sender, TCloseAction &Action) { Image->Canvas->Brush->Color=clWhite;//或改為form2的顏色 Image->Canvas->FillRect(Rect(0,0,Image->Width,Image->Height)); }其實你的問題有個語病~你可能認為form2~close後即釋放掉了~其實不然~ 你可以看成form2只是隱藏掉了~所以你在form2上的元件並沒有釋放掉~ 當你再次開啟form2時~上面的元件其實還是"原班人馬"~所以上面的例子~ 只是將Image~Brush成白色~如果你要每次開啟都重建Image應當將 Image給free()掉 發表人 - rogan321 於 2005/02/14 20:58:54 |
eric888
一般會員 發表:9 回覆:3 積分:2 註冊:2004-09-29 發送簡訊給我 |
|
cashyy
高階會員 發表:117 回覆:322 積分:212 註冊:2004-04-30 發送簡訊給我 |
//設定Form2的OnClose事件
void __fastcall TForm2::FormClose(TObject *Sender,TCloseAction &Action) { Action = caFree; }Form裡的Action屬性,Action屬性是用來決定是否真的要關閉視窗,這個設定值一般會在OnClose事件裡發生效果,Action參數的內容: 1.caNone:表示視窗不被允許關閉,所以將不會有任何的改變。 2.caHide:就是視窗將被隱藏起來,但是所謂的隱藏就是沒有真正的關閉,所以應用程還是可以對於該Form裡的元件和參數做動作。 3.caFree:這個設定動作將會把Form給關閉起來,而在關閉之後並把所有配置給該Form的記憶體全數歸還給系統。 |
rogan321
高階會員 發表:21 回覆:307 積分:200 註冊:2003-05-15 發送簡訊給我 |
#includecashyy: "Action = caFree..."此方法為針對MDI視窗的處理才可之~否則記憶體會不正常配置 |
cashyy
高階會員 發表:117 回覆:322 積分:212 註冊:2004-04-30 發送簡訊給我 |
|
yorkland
高階會員 發表:2 回覆:138 積分:108 註冊:2004-12-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |