create from 的方式(Appliction)(nil)(self).....有何不同 |
答題得分者是:ccchen
|
isthatu
初階會員 發表:80 回覆:47 積分:25 註冊:2002-06-26 發送簡訊給我 |
|
ccchen
版主 發表:61 回覆:940 積分:1394 註冊:2002-04-15 發送簡訊給我 |
1.form.Create(self)
以目前之object (self)做為新create Form之owner
通常你可能在menuClick或ButtonClick執行,
例如在 procedure TForm1.button1click(Sender:Tobject);
那麼TForm1之目前Instance(可能即form1)為新create Form之owner 2.form.Create(application)
以application之mainForm做為新create Form之owner 3.form.Create(nil)
新create 之Form無owner Owner會管理所有child之memory, 故若新create之 Form未close,未free
則owner close時會自動將其close並free
例:1.中 form1 close時會將其free
2.中 application結束時會將其free
3. 變成孤兒
|
isthatu
初階會員 發表:80 回覆:47 積分:25 註冊:2002-06-26 發送簡訊給我 |
引言: 1.form.Create(self) 以目前之object (self)做為新create Form之owner 通常你可能在menuClick或ButtonClick執行, 例如在 procedure TForm1.button1click(Sender:Tobject); 那麼TForm1之目前Instance(可能即form1)為新create Form之owner------1.那是否新creat的from close後 要把他free掉 ex; try subform:=Tsubform.Create(self); ...... finally subform.free; 還是不用先把他free掉 自己等他的owner 結束後 他會自行釋放掉 還是說要在owner 的onclose event中再subform.free; 引言: 2.form.Create(application) 以application之mainForm做為新create Form之owner那不就是等整個程式結束 才被free掉 引言: 3.form.Create(nil) 新create 之Form無owner Owner會管理所有child之memory, 故若新create之 Form未close,未free 則owner close時會自動將其close並free^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 照您說法 我這個subform可以create--close-create-close 這樣不去free掉 當他的owner from未結束前會不會出現好幾份相 同的subform在記憶體裡? 引言: 例:1.中 form1 close時會將其free 2.中 application結束時會將其free 3. 變成孤兒^^^^^^^^^^^^這個孤兒是不是要手動free / -----------------------BCDEFHIJKLMNOPQRSTUVWXZ ------------------------
------
BCDEFHIJKLMNOPQRSTUVWXZ |
ccchen
版主 發表:61 回覆:940 積分:1394 註冊:2002-04-15 發送簡訊給我 |
孤兒當然要自己Freee 有owner之form雖然有人管,還是在恰當時機自行free較好
ex; try subform:=Tsubform.Create(self); subform.showmodal; ...... finally subform.free;這是最標準的 另一問題是, showmodal改為show,你就沒有free時機, 此時可在onClose寫 action:=caFree, 當user close時free掉. 照您說法 我這個subform可以create--close-create-close 這樣不去free掉 當他的owner from未結束前會不會出現好幾份相 同的subform在記憶體裡? 若owner為application的話, 是的 實際上同一個form你也可以create多個instance, 且同時show |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |