onKeyPress & virtual key code question? |
答題得分者是:RaynorPao
|
wjlin
一般會員 發表:10 回覆:15 積分:5 註冊:2003-09-09 發送簡訊給我 |
非常不好意思
想請教一下 我想要應用virtual key code
例如VK_RETURN, VK_UP, VK_DOWN等等
進行StringGrid的onKeyPress動作控制
測試如下
void __fastcall TForm1::StringGrid1KeyPress(TObject *Sender, char &Key) { if(Key == VK_DOWN || Key == VK_RETURN ) { ShowMessage("ok!"); } }但卻發現compiler都沒有問題 執行後 以debug mode看來 只有enter鍵有作用 方向鍵↓ 卻連進這個function都沒有 所以也就沒有執行到function內部的判別式 不知道哪為高手可以指點一下 這會是哪一方面的問題呢? |
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 非常不好意思 想請教一下 我想要應用virtual key code 例如VK_RETURN, VK_UP, VK_DOWN等等 進行StringGrid的onKeyPress動作控制 測試如下wjlin 你好: 試試把你的程式碼寫到 KeyDown 裡面 --void __fastcall TForm1::StringGrid1KeyPress(TObject *Sender, char &Key) { if(Key == VK_DOWN || Key == VK_RETURN ) { ShowMessage("ok!"); } }但卻發現compiler都沒有問題 執行後 以debug mode看來 只有enter鍵有作用 方向鍵↓ 卻連進這個function都沒有 所以也就沒有執行到function內部的判別式 不知道哪為高手可以指點一下 這會是哪一方面的問題呢?
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
wjlin
一般會員 發表:10 回覆:15 積分:5 註冊:2003-09-09 發送簡訊給我 |
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 您好 真的感謝您 這樣確實就可以了 不過這樣一來KeyPress不就有實用上的侷限? 這樣來說 我如何知道何時應該用哪一個event? 而且方便的話 可以解釋一下為什麼會有這重情況嗎? 我真的很好奇 不管如何還是非常非常的感謝啦! wjlin 你好: (1)當按鍵被按下的那一個時間點 KeyDown event 會被觸發,當按鍵被放掉的那 一個時間點 KeyUp event 會被觸發,當一個 KeyDown 加一個 KeyUp 就會觸 發 KeyPress (2)我想原本你把程式碼放在 KeyPress 裡面不能夠執行的原因,應該是 TStringGrid 這個元件它本身有攔截 KeyPress event 並針對某個 Key 做處 理所造成的,但是,這並沒有關係,你只需要把自己要處理的動作放在 KeyDown 或 KeyUp 裡面即可,只要能夠達到目的就好 (3)除非你有非常特殊的需求,一定要在 KeyPress event 被觸發的這個時間點 針對某個 Key 做處理的話,那以上建議你的方法就應該不適用了,目前小弟 我能夠想到的其他方法,就像 lcsboy 版本曾經發表過的串接法,應該就可 以解決這個問題 (如果你有興趣的話,建議你在本站搜尋,就可以找到這方 面的相關資料,我就不再另外列出來了) > --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
wjlin
一般會員 發表:10 回覆:15 積分:5 註冊:2003-09-09 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |