全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:3087
推到 Plurk!
推到 Facebook!

簡介 Owner 和 Parent 的分別

 
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-06-07 13:58:35 IP:218.16.xxx.xxx 未訂閱

Components.Owner

Owner 是 Components 之間 元件擁有 的從屬的關係
  • 在設計時 Form 是所有在該Form 元件的 Owner 但 Owner 不一定要是 Form, 1. 在 RunTime 時新建的元件你可設定別的 Component 做 Owner 2. 元件裡子元件的 Owner 通常都是母元件 (如 SpinEdit 的 Up/Down Button)
  • 在 Owner.Components 會記著所有 Owned Component 的清單
  • 可以用 Owner.FindComponent 找 Owned Component
  • 以 Owner.ComponentCount 知道有多少 Owned Component
  • 在 WriteComponent 時 (包括在IDE Save 時)會包括 Owner.Components 內的元件
  • Owner Free 時會自動 Free 所有在 Owner.Components 裡的 Components

Control.Parent

Parent 是 Controls 之間 元件位置 的從屬關係
  • Parent 一定要是 TWinControl, 子 Control 可以是任何 Control
  • Parent 可以是 Form, 或是其他有 Client Area 的 WinControl 如 Panel
  • 子元件的位置是對應 Parent 的 Client Area 的
  • 在 Parent.Controls 會記著子元件的清單
  • 可以用 Parent.FindChildControl 找子元件
  • 以 Parent.ControlCount 知道有多少子元件
  • Parent Free 時也會 Free Parent.Controls 裡的子元件
一個 Control 的 Parent 及 Owner 可以是同一個 Control,也可以是不同的物件。 經常有人會在 Panel FindComponent 卻找不到明明在 Panel 上面的元件,就是因為這個原因 (Owner 一般是 Form 而不是 Panel)
turboted
版主


發表:95
回覆:754
積分:452
註冊:2002-07-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-06-07 19:40:46 IP:61.66.xxx.xxx 未訂閱
Delphi 5.x 程式設計實務 吳xx著.. 學貫出版 裏面也有提到Owner & Parent 的分別,寫的還不錯 也可以參考看看
China Join
中階會員


發表:81
回覆:242
積分:89
註冊:2003-03-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-06-07 22:50:46 IP:218.170.xxx.xxx 未訂閱
小弟提出幾個自己對於 Owner 和 Parent 的觀點如果有錯誤請幫忙指證    Owner 的作用主要在於物件的釋放和記憶體的管理 例如動態產生物件的時候可以指定其 Owner,例如指定為 Form 則程式關閉 的時候他會把動態產生物件的記憶體釋放掉    Parent 的作用主要在於繼承和資源分享 例如自訂物件的各種屬性與方法的繼承,另外子物件可以設定父物件的某些 特性,例如放在 Form 上面的表格可以直接引用 Form 的顏色,使畫面具有 一致性。    不知道這些觀念對不對,請各位大大幫忙指證 ~ o < >< >
China Join
中階會員


發表:81
回覆:242
積分:89
註冊:2003-03-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-06-07 22:54:43 IP:218.170.xxx.xxx 未訂閱
引言: 小弟提出幾個自己對於 Owner 和 Parent 的觀點如果有錯誤請幫忙指證 Owner 的作用主要在於物件的釋放和記憶體的管理 例如動態產生物件的時候可以指定其 Owner,例如指定為 Form 則程式關閉 的時候他會把動態產生物件的記憶體釋放掉 Parent 的作用主要在於繼承和資源分享 例如自訂物件的各種屬性與方法的繼承,另外子物件可以設定父物件的某些 特性,例如放在 Form 上面的表格可以直接引用 Form 的顏色,使畫面具有 一致性。 不知道這些觀念對不對,請各位大大幫忙指證 ~ o < >< > 還有沒有什麼其他的作用ㄚ ... 總覺得還少ㄌ什麼 < face="Verdana, Arial, Helvetica">
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-06-08 00:12:24 IP:218.16.xxx.xxx 未訂閱
Parent 與 繼承完全無關,而只是 位置上的關係 你可參看 Help TControl.parent 的說明 有些別的語言有 SUPER 的慨念指承繼自的 Class 但 Delphi 沒直接相對於這個慨念的關鍵字來代表父代 Class , 而較接近的是 inherited 字眼來執行父代的一些 Method
China Join
中階會員


發表:81
回覆:242
積分:89
註冊:2003-03-12

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-06-08 00:38:51 IP:218.170.xxx.xxx 未訂閱
3Q 我錯把 JAVA 的觀念拿來用ㄌ  
justimchung
一般會員


發表:0
回覆:4
積分:0
註冊:2003-05-24

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-06-11 22:47:27 IP:163.28.xxx.xxx 未訂閱
Parent Free 時也會 Free Parent.Controls 裡的子元件 Parent Free時也會Free Controls裏的子元件嗎? 不是只有owner才會嗎?
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-06-11 23:08:42 IP:218.16.xxx.xxx 未訂閱
你可參看 Help TControl.parent 的說明 總之一個元件 Free 時會把他的 Controls 或/及 Components (若有的話) 全 Free 掉。
系統時間:2024-04-20 16:57:06
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!