線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1152
推到 Plurk!
推到 Facebook!

继承时如何让父类的某些特性不被继承

尚未結案
fangwy
中階會員


發表:99
回覆:139
積分:62
註冊:2003-09-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-11-17 16:03:54 IP:218.5.xxx.xxx 未訂閱
我继承TLabel创建了一个新的东西TElement,因为重载了Repaint所以不希望Caption,Font等会对我重画有影响或不起作用的特性不被使用,所以不希望这些属性被继承下来,怎么做.我知道C 怎么做,但DELPI好象不太一样. 谢谢
huwk
資深會員


發表:26
回覆:340
積分:323
註冊:2002-04-03

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-11-17 18:49:29 IP:211.21.xxx.xxx 未訂閱
通常子代只能加入新功能!而不能將父代改放出來的PROPERTY的可視層級降低! 若你有這樣子的需求.建議你再往父代去改寫!
------
熊的學習 http://huwk.blogspot.com
fangwy
中階會員


發表:99
回覆:139
積分:62
註冊:2003-09-10

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-11-18 16:06:23 IP:218.5.xxx.xxx 未訂閱
谢谢huwk兄,能不能详细说明,该不会不得不重头写一个,而不能使用已有的TLabel属性和方法(我想要的)吧?
huwk
資深會員


發表:26
回覆:340
積分:323
註冊:2002-04-03

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-11-19 02:21:34 IP:211.76.xxx.xxx 未訂閱
也就是說.你往父代去找那層實際實作這個方法的元件.由他的上一層去改改! 例如FONT這一個PROPERTY你去看TLABEL.並不是實作這個方法的一層級! 再往上找!TCustomLabel也不是。 當你一直找下去時會發現他在 TControl,所以你要做的是由TCompont去改寫下來! 而因為你的那二個PROPERTY是很基底層就有的!SO。你的工程事實上是很浩大的! 而這是我知道唯一的方法~要不然你再請教其它人看看其它人有沒有什麼好方法好了!
------
熊的學習 http://huwk.blogspot.com
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-11-21 16:03:54 IP:147.8.xxx.xxx 未訂閱
As huwk pointed out already, this is impossible... But if you can hide the property from being displayed in the object inspector by making it as read only or write only  < face='Lucida Console'>http://pywong.hk.st
fangwy
中階會員


發表:99
回覆:139
積分:62
註冊:2003-09-10

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-11-21 17:14:18 IP:218.5.xxx.xxx 未訂閱
看来真没办法,DELPHI果然不是真正的OOP--与C ,JAVA不太一样. 也难怪软件水平考试不使用DELPHI语言. 谢谢两位.
系統時間:2024-05-19 16:36:47
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!