有關元件CREATE的問題 |
答題得分者是:heart75047
|
chjunsen
一般會員 發表:38 回覆:15 積分:10 註冊:2006-10-25 發送簡訊給我 |
|
heart75047
一般會員 發表:9 回覆:13 積分:19 註冊:2010-05-20 發送簡訊給我 |
Create(AOwner: TComponent)
AOwner 擁有者 如果A的擁有者被FREE掉 A也會被FREE掉 如果你新增一個專案 在form1 底下 那麼Self 指的是Form1 也就是擁有者是From1 Nil指的是空指標 也就是沒有擁有者 做個小實驗即可知道他們的不同 開一個專案 拉一個按鈕 Click事件如下 [code delphi] procedure TForm1.Button1Click(Sender: TObject); var A,B:TButton; P:TPanel; begin A:=TButton.Create(Self); A.Parent:=Self; A.Top:=100; A.Left:=100; A.Caption:='A'; P:=TPanel.Create(Self); p.Parent:=Self; P.Top:=100; P.Left:=200; B:=TButton.Create(P); B.Parent:=Self; B.Top:=100; B.Left:=300; B.Caption:='A'; P.Free; end; [/code] 當按下後 A還在 但是B不見了 因為B的擁有者是P 但是P被Free掉了 所以B也被Free掉了 |
chjunsen
一般會員 發表:38 回覆:15 積分:10 註冊:2006-10-25 發送簡訊給我 |
感謝
===================引 用 heart75047 文 章=================== Create(AOwner: TComponent) AOwner 擁有者 如果A的擁有者被FREE掉 A也會被FREE掉 如果你新增一個專案 在form1 底下 那麼Self 指的是Form1 也就是擁有者是From1 Nil指的是空指標 也就是沒有擁有者 做個小實驗即可知道他們的不同 開一個專案 拉一個按鈕 Click事件如下 [code delphi] procedure TForm1.Button1Click(Sender: TObject); var A,B:TButton; P:TPanel; begin A:=TButton.Create(Self); A.Parent:=Self; A.Top:=100; A.Left:=100; A.Caption:='A'; P:=TPanel.Create(Self); p.Parent:=Self; P.Top:=100; P.Left:=200; B:=TButton.Create(P); B.Parent:=Self; B.Top:=100; B.Left:=300; B.Caption:='A'; P.Free; end; [/code] 當按下後 A還在 但是B不見了 因為B的擁有者是P 但是P被Free掉了 所以B也被Free掉了 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |