Tform.Create(aowner) aowner之問題? |
答題得分者是:change.jian
|
ry_lee
高階會員 發表:368 回覆:251 積分:123 註冊:2002-03-19 發送簡訊給我 |
|
wameng
版主 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
|
change.jian
版主 發表:29 回覆:620 積分:439 註冊:2003-06-02 發送簡訊給我 |
to ry_lee:
TForm.Create時,傳入的參數,代表這個create的form的Owner,這個參數的型態必需為一個TComponent(或TComponent繼承下來)的元件.
一個TComponent元件如果為其他元件的Owner(也就是這個元件擁有其他元件),在Free時,必需負責把他所有擁有的元件也一併Free掉,這是一個Owner元件的責任.
舉個例子,通常一個Form上面我們會擺很多的元件,如TLabel,TDBEdit...等,這些元件的Owner即為這個Form.當這個Form被Free時,會主動呼叫Form上的元件(TLabel,TDBEdit...等)的Free方法來釋放資源,然後本身才會釋放掉.
同理,如果你的Form.Create時,傳入的AOwner為一個applicateion,那麼表示這個application在free時,會把這個form也free掉,傳入什麼元件,這個元件就是這個form的owner.如果傳入nil,那麼這個Form就是沒有owner而已..記得要自己釋放掉
如果有興趣,可以參考TComponent的source code.... 喔...有人先回答了... 發表人 - CHANGE.JIAN 於 2005/07/12 17:40:40
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |