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。

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


          網站導航:
           
          主站蜘蛛池模板: 江门市| 余干县| 池州市| 陵水| 永川市| 鹤岗市| 青铜峡市| 西华县| 花莲市| 会昌县| 定兴县| 远安县| 永昌县| 侯马市| 金溪县| 绩溪县| 海丰县| 北流市| 新丰县| 邵阳市| 安乡县| 清流县| 辉县市| 柳河县| 汾西县| 卢龙县| 奎屯市| 灌阳县| 建平县| 孟村| 浏阳市| 晋城| 开阳县| 江西省| 乌拉特前旗| 永州市| 刚察县| 清苑县| 嘉禾县| 文山县| 子长县|