請問一個動態form的問題 |
答題得分者是:RaynorPao
|
tommylee926
一般會員 發表:24 回覆:25 積分:9 註冊:2003-08-17 發送簡訊給我 |
小第有form1與form2,其中form2是動態的,程式碼如下: void __fastcall TForm1::FormMouseDown(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{
ShowMessage(IntToStr(Form2)); Form2 = new TForm2(Application);
Form2->ShowModal();
delete Form2;
}
=========================================================
一開始ShowMessage(IntToStr(Form2))是0,可是後來不管我執行delete Form2後ShowMessage(IntToStr(Form2))都是1,不是被我刪掉了嗎?為何還是 1呢
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 小第有form1與form2,其中form2是動態的,程式碼如下:void __fastcall TForm1::FormMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { // ShowMessage(IntToStr(Form2)); ShowMessage("0x"+IntToHex((int)Form2, 8)); Form2 = new TForm2(Application); Form2->ShowModal(); delete Form2; Form2=NULL; }========================================================= 一開始ShowMessage(IntToStr(Form2))是0,可是後來不管我執行delete Form2後ShowMessage(IntToStr(Form2))都是1,不是被我刪掉了嗎?為何還是 1呢 tommylee926 你好: (1)試試看加入上面那一行程式碼 (2)delete 只會把該指標 alloc 的記憶體 free,並不會把該指標的值設為 NULL,所以你要自己加-- Enjoy Researching & Developing -- 發表人 - RaynorPao 於 2004/06/02 11:34:17
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
tommylee926
一般會員 發表:24 回覆:25 積分:9 註冊:2003-08-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |