如何判斷new出來的物件是不是還活著 |
答題得分者是:dllee
|
biau
一般會員 發表:25 回覆:32 積分:21 註冊:2003-02-27 發送簡訊給我 |
我用一個Button按下以後執行
void __fastcall TForm1::Button1Click(TObject *Sender)
{ TMediaPlayer *s;
s=new TMediaPlayer(Form1); s->Parent=Form1;
s->Close();
s->FileName="c:\\windows\\media\\ding.wav";
s->Open(); }
new 出一個MediaPlayer的物件在Form1上
我要怎麼寫才能讓程式判斷Form1上已經成功的產生一個MediaPlayer物件
==========================================================
|
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
解答在紅色部分
引言: 我用一個Button按下以後執行P.S. 您的代號與我老師一樣!不會就是我老師吧! <>沒空更新的網頁... href="http://big5.to/吃軟也吃硬">http://big5.to/吃軟也吃硬 http://coolsite.to/ushells 介紹Shells,LiteStep,GeoShell....void __fastcall TForm1::Button1Click(TObject *Sender) { TMediaPlayer *s; s=new TMediaPlayer(Form1); if(s==NULL) { // 無法 new 出 TMediaPlayer // 可以 ShowMessage 或 throw exception 告知使用者 return; } s->Parent=Form1; s->Close(); s->FileName="c:\\windows\\media\\ding.wav"; s->Open(); }new 出一個MediaPlayer的物件在Form1上 我要怎麼寫才能讓程式判斷Form1上已經成功的產生一個MediaPlayer物件 ==========================================================
------
http://www.ViewMove.com |
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
看到老師的大名,讓我差點忘了要提醒您,您的程式,對於 new 出來的 TMediaPlayer 無法立刻 delete 吧,因為還要使用它。
像這樣的東西,最好放到 TForm1::TForm1() 或是 FormCreate 中,並以一 TForm1 的屬性來記錄它的指標,這樣才能在 TForm1::~TForm1() 或是 FormDestroy 中,把它 delete。
當然,您的作法也是可以的,因為已指定它的 Owner 是 Form1 當 Form1 消失時,Form1 會幫您一併 delete 掉它。
只是,最好還是要有自己 new 自己 delete 的好習慣會比較好。 沒空更新的網頁...
http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://big5.to/吃軟也吃硬 http://coolsite.to/ushells 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |