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

onKeyPress & virtual key code question?

答題得分者是:RaynorPao
wjlin
一般會員


發表:10
回覆:15
積分:5
註冊:2003-09-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-11-14 14:25:56 IP:61.13.xxx.xxx 未訂閱
非常不好意思 想請教一下    我想要應用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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-11-14 14:36:23 IP:61.221.xxx.xxx 未訂閱
引言: 非常不好意思 想請教一下 我想要應用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內部的判別式 不知道哪為高手可以指點一下 這會是哪一方面的問題呢?
wjlin 你好: 試試把你的程式碼寫到 KeyDown 裡面 --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
wjlin
一般會員


發表:10
回覆:15
積分:5
註冊:2003-09-09

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-11-14 14:56:29 IP:61.13.xxx.xxx 未訂閱
引言: wjlin 你好: 試試把你的程式碼寫到 KeyDown 裡面 -- >< face="Verdana, Arial, Helvetica"> 您好 真的感謝您 這樣確實就可以了 不過這樣一來KeyPress不就有實用上的侷限? 這樣來說 我如何知道何時應該用哪一個event? 而且方便的話 可以解釋一下為什麼會有這重情況嗎? 我真的很好奇 不管如何還是非常非常的感謝啦!
RaynorPao
版主


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-11-14 15:07:40 IP:61.221.xxx.xxx 未訂閱
引言: 您好 真的感謝您 這樣確實就可以了 不過這樣一來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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-11-14 16:16:29 IP:61.13.xxx.xxx 未訂閱
真的是非常感謝 我瞭解了
系統時間:2024-05-18 12:05:33
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!