NewInstance 的使用方式? |
答題得分者是:william
|
x803198
一般會員 發表:8 回覆:28 積分:17 註冊:2002-12-06 發送簡訊給我 |
位為前輩請位一下
下面兩種寫法作用一樣,記憶體大小也一樣,有點不太了解 NewInstance 真正的使用時機,麻煩大大可以為我解惑? Var
Pa : TList; procedure NewPList_1;
Var
Temp : TList;
begin
Pa := TList.Create;
Temp := TList.Create;
Pa.add(Temp);
end; procedure NewPList_2;
begin
Pa := TList.Create;
Pa.add(TList.NewInstance);
end; 程式是一條不歸路
|
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
In simple words, don't use NewInstance. http://delphi.ktop.com.tw/link.asp?topic_id=19684
|
x803198
一般會員 發表:8 回覆:28 積分:17 註冊:2002-12-06 發送簡訊給我 |
引言: In simple words, don't use NewInstance. http://delphi.ktop.com.tw/link.asp?topic_id=19684謝謝板大 這篇文章我也看過了,後來我自己Try有一些心得不曉得對不對 已TList來說 用 Create 跟 NewInstance 都是一樣的,都只是配制記憶體而已 因為 TList 在 Create 的時候沒有初始什麼東西 所以一般都是用 Create 比較安全,所以我的寫法改成下面就好了 procedure NewPList_2; begin Pa := TList.Create; Pa.add(TList.Create); end; 轉載那篇文章的大大範例 obj := TForm1(TForm1.NewInstance); obj.Create(Self); obj.Show; 後來我去看Help,其實寫這樣就好了 obj := TForm1.NewInstance; obj.Create(Self); obj.Show; 因為所有物件都是繼承 TObject,所有NewInstance動作都是 TObject 來配置記憶體,不曉得我說的對不對請指教囉 程式是一條不歸路 發表人 - x803198 於 2003/08/19 11:29:35 |
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |