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

元件繼承問題

答題得分者是:pcplayer99
bill534
一般會員


發表:38
回覆:51
積分:17
註冊:2007-02-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-06-01 11:42:35 IP:220.130.xxx.xxx 訂閱
published
property OnQSEvent: TQSWrapperQSEvent read FOnQSEvent write FOnQSEvent;

如上述兩行是我母元件內的一個事件,當我繼承過來後要如何寫可以把它隱藏起來,在子件內我要用它來延伸出其他的事件!
pedro
尊榮會員


發表:152
回覆:1187
積分:892
註冊:2002-06-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-06-01 12:08:05 IP:60.248.xxx.xxx 未訂閱
存取層級一旦公開,後代即是公開,無法再隱藏起來
pcplayer99
尊榮會員


發表:146
回覆:790
積分:632
註冊:2003-01-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-06-01 19:50:22 IP:59.40.xxx.xxx 訂閱
如果是继承的,后代是没办法隐藏 Parent 公开的东西的。

如果要隐藏,你可以考虑换一种模式。比如你有 TParent = class ....

那么,不用继承,用包装:

TChild = class
private
FParent: TParent;
public
published
property MyProperty: ......
end;

===================引 用 bill534 文 章===================
published
property OnQSEvent: TQSWrapperQSEvent read FOnQSEvent write FOnQSEvent;

如上述兩行是我母元件內的一個事件,當我繼承過來後要如何寫可以把它隱藏起來,在子件內我要用它來延伸出其他的事件!
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-06-02 13:01:17 IP:219.81.xxx.xxx 訂閱
按照 Delphi 標準的繼承方式。

先建立 TCustom... 元件,並盡可能預留方法同母元件,
不過均將公開屬性與事件,放置於 Protected 段

真正發佈時,建立元件並將要公布屬性方法放置 Published
查閱 Delphi VCL Source Code

所以要建立三個元件。....

參考

===================引 用 bill534 文 章===================
published
????????????? property OnQSEvent: TQSWrapperQSEvent read FOnQSEvent write FOnQSEvent;

如上述兩行是我母元件內的一個事件,當我繼承過來後要如何寫可以把它隱藏起來,在子件內我要用它來延伸出其他的事件!
bruce
中階會員


發表:19
回覆:121
積分:83
註冊:2002-04-16

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-06-04 09:26:41 IP:211.21.xxx.xxx 訂閱
考慮不要使用繼承模式,改用物件結合模式會比較靈活一點...
使用繼承,則該所有子類別,都會擁有共同的屬性,這種關係是相當緊密的
而且不允許改變,如果可以隨意隱藏,那麼所謂的繼承概念就被破壞了。
bill534
一般會員


發表:38
回覆:51
積分:17
註冊:2007-02-22

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-06-04 13:34:43 IP:220.130.xxx.xxx 訂閱
多謝各位先進回覆,我己先用連結的方式排除,另外就是在新的元件內若我要Access此元件時用是否等於nil方式外還有其他地方式嗎!
bruce
中階會員


發表:19
回覆:121
積分:83
註冊:2002-04-16

發送簡訊給我
#7 引用回覆 回覆 發表時間:2007-06-04 13:53:45 IP:211.21.xxx.xxx 訂閱
這要看兩個物件的結合關係,是一對一關係,或是一對多關係,如果是一對一關係,那新元件建構時,必須一同建構結合進來的元件,如果是一對多關係,就去判斷結合的元件是否被建構。在設計模式中,有一種叫singleton模式,甚至可以讓不同元件之間共用一個物件。
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#8 引用回覆 回覆 發表時間:2007-06-04 20:22:04 IP:219.86.xxx.xxx 訂閱
補充一點:

繼承模式也好,元件插花有好(我姑且稱之),都要看元件所給予的特性而定。
否者會有點不倫不累的感覺。

除非父字輩元件沒有Source ,若只為了隱藏某個屬性卻又多建立一個物件。
這似乎有點奇怪。

用Assigned 判斷
系統時間:2024-04-28 22:55:09
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!