ouyida3

          要編出最人性化的程序
          posts - 13, comments - 5, trackbacks - 0, articles - 0

          KEYPRESS,KEYDOWN,KEYUP之區別

          Posted on 2007-03-10 23:45 ouyida3 閱讀(1318) 評論(0)  編輯  收藏 所屬分類: Delphi
          今天想在strg的3、4行都輸入了以后自動算出第5行的值,于是在keypress事件這么寫:
          //計算實洋
          ? if (strg1.Cells[3,strg1.Row]<>'') and (strg1.Cells[4,strg1.Row]<>'') then
          ? strg1.Cells[5,strg1.Row]:=floattostr(strtofloat(strg1.Cells[3,strg1.Row])
          ????? * strtofloat(strg1.Cells[4,strg1.Row]));
          誰知道運行時我輸入了第3行和第4行后報第4行的值為空,換成keyup竟然行了,于是上網查了一下三者的區別,xiaobian的blog里這么說:
          {KeyPress主要用來接收字母、數字等ANSI字符,而 KeyDown 和 KeyUP 事件過程可以處理任何不被 KeyPress 識別的擊鍵,諸如:功能鍵(F1-F12)、編輯鍵、定位鍵以及任何這些鍵和鍵盤換檔鍵的組合等。與 KeyDown 和 KeyUp 事件不同的是,KeyPress 不顯示鍵盤的物理狀態(SHIFT鍵),而只是傳遞一個字符。KeyPress 將每個字符的大、小寫形式作為不同的鍵代碼解釋,即作為兩種不同的字符。而 KeyDown 和 KeyUp 用兩種參數解釋每個字符的大寫形式和小寫形式:keycode — 顯示物理的鍵(將 A 和 a 作為同一個鍵返回)和 shift —指示 shift + key 鍵的狀態而且返回 A 或 a 其中之一。
          ????KeyDown、KeyUp事件是當按下 ( KeyDown ) 或松開 ( KeyUp ) 一個鍵時發生的。由于一般按下鍵盤的鍵往往會立即放開(這和鼠標不同),所以這兩個事件使用哪個差別不大。}

          而且,up和其他兩者還有一個區別:要判斷key修改后的狀態必須用up。

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 清原| 松桃| 宁波市| 赫章县| 梧州市| 兴国县| 革吉县| 古田县| 思茅市| 九龙城区| 慈利县| 中宁县| 乌拉特后旗| 冀州市| 宁波市| 盱眙县| 三明市| 池州市| 南汇区| 襄垣县| 深水埗区| 安泽县| 科技| 德州市| 英山县| 普宁市| 广德县| 阜平县| 长寿区| 龙游县| 金川县| 莱西市| 离岛区| 肥城市| 恭城| 和林格尔县| 宾阳县| 贵州省| 郎溪县| 信丰县| 海阳市|