test test |
尚未結案
|
arthur1993
一般會員 發表:5 回覆:2 積分:1 註冊:2006-07-20 發送簡訊給我 |
對不起
第一次發文發問,程式部份讓大家看不清楚 再此重貼 各位先進大家好 小弟是想學習自己建立一個VCL類別叫作 TDateMaskEdit 繼承自TCustomMaskEdit 並希望在生成物件後,當觸發KeyDown事件時 先去執行類別內的程式,再執行物件本身的程式 可是一直無法成功,請大家不吝指教,謝謝 [code cpp] DateMaskEdit.HPP如下 class PACKAGE TDateMaskEdit : public TCustomMaskEdit { __published: ... ... __property TKeyEvent OnKeyDown = { read = FOnKeyDown, write = FOnKeyDown }; ... ... protected: TKeyEvent FKeyDown; DYNAMIC void __fastcall KeyDown(System::Word &Key, Classes::TShiftState Shift); // <---問題好像在這裡 DYNAMIC void __fastcall DoKeyDown(System::Word &Key, Classes::TShiftState Shift); public: } [/code]DateMaskEdit.CPP如下 [code cpp] void __fastcall TDateMaskEdit::KeyDown(System::Word &Key, Classes::TShiftState Shift) { ShowMessage("In Class"); } [/code] 在應用程式 Unit1.CPP如下 [code cpp] void __fastcall TForm1::DateMaskEdit1KeyDown(TObject *Sender, WORD &Key, TShiftState Shift) { ShowMessage(" In Apps"); } [/code] 預期結果是每按一個鍵 會先出現 "In Class" 再出現 "In Apps" 可是小弟我只能辦到只能出現 "In Class" 或只出現 "In Apps" 就是沒辦法兩個訊息同時出現!!小弟研究的結果好像是如果有 DYNAMIC void __fastcall KeyDown(System::Word &Key, Classes::TShiftState Shift); 就只會出現 "In Class" 如果只有 DYNAMIC void __fastcall DoKeyDown(System::Word &Key, Classes::TShiftState Shift); 就只會出現 "In Apps" 如果 DYNAMIC void __fastcall KeyDown(System::Word &Key, Classes::TShiftState Shift); DYNAMIC void __fastcall DoKeyDown(System::Word &Key, Classes::TShiftState Shift); 都有 也只會出現 "In Class" 請問我的問題是出在那呢?? 謝謝大家
編輯記錄
arthur1993 重新編輯於 2010-07-11 20:48:21, 註解 無‧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |