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

從TCustomControl繼承OnClick事件的問題

缺席
tfanalysis
一般會員


發表:10
回覆:9
積分:3
註冊:2007-01-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-01-31 01:24:42 IP:211.72.xxx.xxx 訂閱
事情是這樣的,我做了一個元件(TWithButton),繼承自TCustomControl
我希望TWithButton可以有OnClick()

模仿了TButton的的宣告方法(在StdCtrls.hpp)
加了這兩行
public:
DYNAMIC void __fastcall Click(void);
__published:
__property OnClick ;

好,問題來了,怎麼試就是有error。
問題在這一句"DYNAMIC void __fastcall Click(void);"
我的思路是這樣的:宣告直接引用TCustomControl裡的Click()-------但compile的結果不對
查了一下help,TCustomControl裡並沒有將OnClick()給public出來,它的父類別TWidgetControl也沒有
而TControl似乎才是OnClick()的源頭
於是我改成這樣
DYNAMIC void __fastcall TControl::Click(void); -------還是不行
再try
DYNAMIC void __fastcall Click(System::TObject* Sender); -------還是不行


後來發現DYNAMIC這行是多餘的
只要published裡的 __property OnClick ; 這一句就解決了


why ???
why ??????
why ??????????
Who can tell me why, please???????????????????????????????
我的觀念哪裡錯了嗎??????????
懇求前輩們賜教
tfanalysis
一般會員


發表:10
回覆:9
積分:3
註冊:2007-01-07

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-01-31 15:35:21 IP:140.115.xxx.xxx 訂閱
睡了一覺,我知道問題了
很白癡
解決方法有二
一是把DYNAMIC那行刪掉
二是自己對OnClick再實做一次
之前出問題的原因是:將TControl的virtual function在自訂的物件裡重載,卻沒有實做。
就醬,應該對吧??
tfanalysis
一般會員


發表:10
回覆:9
積分:3
註冊:2007-01-07

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-01-31 15:38:33 IP:140.115.xxx.xxx 訂閱
拍謝,不曉得不能打"0nClick",上文中"forbidden"都是"0nClick",但被網站系統給改掉了
系統時間:2024-05-04 0:50:04
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!