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

雙視窗的事件

尚未結案
jason_cyl329
高階會員


發表:123
回覆:155
積分:105
註冊:2003-05-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-09-08 18:35:38 IP:61.218.xxx.xxx 未訂閱
請自程式上船區取程式,如附件, 執行此程式後再右邊有一白色視窗,DbClick左邊會出現黃色視窗, 這兩個Form如果Key 上下左右鍵時,只有KeyUp事件會觸發, F1~F9只有KeyDown會觸發,其他的鍵,KeyDown,KeyPress會觸發, 要如何做才能恢復成都是KeyDown觸發?
mkbobo
一般會員


發表:4
回覆:68
積分:19
註冊:2003-04-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-10-06 12:07:11 IP:202.168.xxx.xxx 未訂閱
我試了許多方法    只有一個有效 方法是利用 ApplicationEvents 這個元件在Additional裡面 只有這個能攔截到KeyDown  和KeyUp    當你再Form2或3 時 雖然你的message當按下上下左右及f1~f12鍵( KeyUp)  有送到form2 or form3 但是 不知道為啥被攔截了 我個人認為 上下左右可能在dock模式下有別的用途所以...    對了 你這個問題 其實不能算是雙視窗才會發生的 應該是說只要使用到dock模式某些key是無法觸發event的 附上 用ApplicationEvents 的節錄片段
void __fastcall TForm1::ApplicationEvents1Message(tagMSG &Msg,
      bool &Handled)
{
    switch(Msg.message)
    {
        case WM_KEYDOWN:
           //這裡可以放你要做的功能
           Memo1->Lines->Add("Form1MsgKeyDown");
            break;
        case WM_KEYUP:
           //這裡可以放你要做的功能
           Memo1->Lines->Add("Form1MsgKeyUp");
            break;
    }
}
jason_cyl329
高階會員


發表:123
回覆:155
積分:105
註冊:2003-05-26

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-10-06 19:24:10 IP:61.218.xxx.xxx 未訂閱
mkbobo你好, 雖然我的程式已經解決了,不過還是感謝你,我的解決方式跟你相同, 我不曉得是否是因為dock的緣故造成的,不過要提醒你不是上下左右鍵都無效, 是只有在keydown的事件無效,keyup還是有反應的。如果能知道為什麼就更好了!!
系統時間:2024-05-18 19:01:11
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!