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

如何設計元件的Event?

尚未結案
WhiteFang
一般會員


發表:9
回覆:23
積分:6
註冊:2002-11-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-04-02 18:06:32 IP:163.28.xxx.xxx 未訂閱
我自己修改了一個TImage元件,增加了一些功能, 但我想增加一些Event我該如何使用? 比方說OnMouseUp與OnMouseDown ? 先謝謝囉!
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-04-02 18:19:12 IP:61.221.xxx.xxx 未訂閱
引言: 我自己修改了一個TImage元件,增加了一些功能, 但我想增加一些Event我該如何使用? 比方說OnMouseUp與OnMouseDown ? 先謝謝囉!
WhiteFang 你好: 如果你自己的元件(假設是 TMyImage)是繼承於 TImage 元件的話 自然也會繼承原本 TImage 元件的 OnMouseUp, OnMouseDown Event procedure -- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
WhiteFang
一般會員


發表:9
回覆:23
積分:6
註冊:2002-11-22

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-04-02 20:25:09 IP:163.28.xxx.xxx 未訂閱
引言:
引言: 我自己修改了一個TImage元件,增加了一些功能, 但我想增加一些Event我該如何使用? 比方說OnMouseUp與OnMouseDown ? 先謝謝囉!
WhiteFang 你好: 如果你自己的元件(假設是 TMyImage)是繼承於 TImage 元件的話 自然也會繼承原本 TImage 元件的 OnMouseUp, OnMouseDown Event procedure
這個我曉得,但是如何設計呢?我試過這樣的作法,直接加在元件的cpp裡,但似乎無效: void __fastcall TForm1::ImageNewMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { ... } 可否舉個範例看看?感激不盡!!
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-04-02 20:30:36 IP:61.221.xxx.xxx 未訂閱
引言: 這個我曉得,但是如何設計呢?我試過這樣的作法,直接加在元件的cpp裡,但似乎無效: void __fastcall TForm1::ImageNewMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { ... } 可否舉個範例看看?感激不盡!!
WhiteFang 你好: 如果你想要 override 原來的 event procedure 的話 可以參考以下文章中的做法(原理)
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
WhiteFang
一般會員


發表:9
回覆:23
積分:6
註冊:2002-11-22

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-04-03 02:15:16 IP:163.28.xxx.xxx 未訂閱
引言: WhiteFang 你好: 如果你想要 override 原來的 event procedure 的話 可以參考以下文章中的做法(原理) >< face="Verdana, Arial, Helvetica"> 看完了這一篇,我又產生了新的問題..... 我一直對BCB自己定義的一些方法,像是__fastcall或向這篇中提到的 virtual 及 DYNAMIC 這些觀念與方法不是很瞭解, 請問想要更進一步瞭解這些東西,有沒有哪一本好書可以參考? 或是要參考HELP的那個部分呢??問題很多,請版主多包涵! 想要更上層樓的
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-04-03 08:35:55 IP:203.73.xxx.xxx 未訂閱
引言: 看完了這一篇,我又產生了新的問題..... 我一直對BCB自己定義的一些方法,像是__fastcall或向這篇中提到的 virtual 及 DYNAMIC 這些觀念與方法不是很瞭解, 請問想要更進一步瞭解這些東西,有沒有哪一本好書可以參考? 或是要參考HELP的那個部分呢??問題很多,請版主多包涵! 想要更上層樓的>< face="Verdana, Arial, Helvetica"> WhiteFang 你好: 其實這些資料,在 BCB Help 裡面都有,建議你自己查詢 以資料轉貼自 class="code"> _fastcall, __fastcall Category Modifiers, C Builder keyword extensions Syntax return-value _fastcall function-name(parm-list) return-value __fastcall function-name(parm-list) Description Use the __fastcall modifier to declare functions that expect parameters to be passed in registers. The first three parameters are passed (from left to right) in EAX, EDX, and ECX, if they fit in the register. The registers are not used if the parameter is a floating- point or struct type. All form class member functions must use the __fastcall convention. The compiler treats this calling convention as a new language specifier, along the lines of _cdecl and _pascal Functions declared using _cdecl or _pascal cannot also have the _fastcall modifiers because they use the stack to pass parameters. Likewise, the __fastcall modifier cannot be used together with _export. The compiler prefixes the __fastcall function name with an at-sign ("@"). This prefix applies to both unmangled C function names and to mangled C function names. For Microsoft VC style __fastcall implementation, see __msfastcall and __msreturn. Note: The __fastcall modifier is subject to name mangling. See the description of the -VC option. 備註: (1)市面上有一本專門在講寫元件的書,去看看吧(應該有更新的版本了,最好再 問問看) http://www.tietovayla.fi/BORLAND/CPLUS/bcppbuilder/4/books/cppbu/chapter27/ (2)如果想要問新的問題,請再開新的 topic,以方便網友日後查詢,謝謝 --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
WhiteFang
一般會員


發表:9
回覆:23
積分:6
註冊:2002-11-22

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-04-04 14:36:00 IP:163.28.xxx.xxx 未訂閱
謝謝!!
WhiteFang
一般會員


發表:9
回覆:23
積分:6
註冊:2002-11-22

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-04-05 15:02:06 IP:163.28.xxx.xxx 未訂閱
我照著這樣做了,但是仍然無效,可否幫我看一看?  
 
header file:
virtual void __fastcall ImageNewMouseUp(TObject *Sender, TMouseButton Button,
        TShiftState Shift, int X, int Y);    Code:
void __fastcall TImageNew::ImageNewMouseUp(TObject *Sender, TMouseButton Button,
        TShiftState Shift, int X, int Y)
{
        popm->Popup(X,Y);
}    
popm是個動態的TPopupMenu。 我原來的預期是希望在這新物件上按一鍵就跳出poupmenu但似乎沒有發生, 可以幫我看看是那邊有問題嗎?? Thanks!!
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-04-05 15:06:06 IP:61.221.xxx.xxx 未訂閱
引言: 我照著這樣做了,但是仍然無效,可否幫我看一看?
 
header file:
virtual void __fastcall ImageNewMouseUp(TObject *Sender, TMouseButton Button,
        TShiftState Shift, int X, int Y);    Code:
void __fastcall TImageNew::ImageNewMouseUp(TObject *Sender, TMouseButton Button,
        TShiftState Shift, int X, int Y)
{
        popm->Popup(X,Y);
}    
popm是個動態的TPopupMenu。 我原來的預期是希望在這新物件上按一鍵就跳出poupmenu但似乎沒有發生, 可以幫我看看是那邊有問題嗎?? Thanks!!
WhiteFang 你好: 是否方便把你的元件程式碼壓縮成 ZIP 上傳至「會員求助程式檔案上傳區」呢??
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
系統時間:2024-05-03 1:28:20
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!