各位大大...有個OO觀念想請教大家... |
尚未結案
|
sprewell
一般會員 發表:13 回覆:21 積分:6 註冊:2003-11-10 發送簡訊給我 |
各位大大...有個OO觀念想請教大家... 我有個parent class繼承自TShape,目的為畫出一條線 Parent_Link = class(TShape)
.
.
public
procedure WndProc(var Message: TMessage); override;
其中WndProc會判斷使用者是否在此線上按了滑鼠,並彈出一個POPMEMU 另外有個 child class繼承此Parent_Link
Child_Link = class(Parent_Link)
.
.
public
procedure WndProc(var Message: TMessage); override;
並覆寫其WndProc程序,目的是把彈出POPMEMU的功能取消 後來我實做下列程式:
var
Child : Child_Link;
begin
......
Child := Child_Link(XXX.InsertLink(....));
//InsertLink(....)會傳回一個Parent_Link物件
.....
end; 我想要用覆寫方式蓋掉原本Parent_Link的popmenu功能,但是卻發現在轉成Child_Link後,它還是執行Parent_Link的WndProc 請大家幫我解解惑....謝謝!!
|
syntax
尊榮會員 發表:26 回覆:1139 積分:1258 註冊:2002-04-23 發送簡訊給我 |
|
tinochen
一般會員 發表:0 回覆:18 積分:8 註冊:2002-07-16 發送簡訊給我 |
引言: 我想要用覆寫方式蓋掉原本Parent_Link的popmenu功能,但是卻發現在轉成Child_Link後,它還是執行Parent_Link的WndProc 請大家幫我解解惑....謝謝!!因為你當初Create的物件是Parent_link,你要override就Create Child_Link ,以你的寫法父物件轉為子物件編譯雖沒問題,但使用卻要很小心,若子物件有父物件中沒有的物件參考很容易發現memory的存取error,正規oo中是較不認同父轉子(除非你當初是子物件實體),但子轉父是很正常。 發表人 - tinochen 於 2003/12/06 10:10:52 |
sprewell
一般會員 發表:13 回覆:21 積分:6 註冊:2003-11-10 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |