imemode是输入法设置
edit只输入数字可以在keydown事件中判断key的值是否在数字的范围内,如果不是则忽略。

解决方案 »

  1.   

    在OnKeyPress 事件中添加如下代码:
    if not ((key = #8) or IsNumeric(Key)) then
        Key := chr(0);另外:
    function IsNumeric(Key: char): boolean;
    begin
      Result := False;
      case Key of
        '0'..'9': Result := True;
      end
    end;
      

  2.   

    在onkeypress中判断:
     if key in [1..9] then exit
      else {出错;key:=#0}
      

  3.   

    比如你的Edit1中发生了按键事件就会调用Edit1KeyPress过程
      

  4.   

    在Edit 的OnKeyPress 事件中加上
    if not (Key in['0'..'9',#13,#8]) then Key:=#0;//当输入的不为数字键,使键值为空
    注:#13、#8分别为 回车(Enter)、退格(Backspace)的ASCII码(十进制)
    也可在其OnKeydown事件中实现,不过Key此时为Word类型,对应的ASCII相应地也要变成十六进制,例#13-〉$0D(或用VK_RETURN)等等.....多试两下,一定会很有收获的.....
      

  5.   

    #13=chr(13)
    ---------------------------------
    各位:只在OnKeyDown/Press中判断是不够的,设想
    我给你用鼠标粘贴一点"阿司法四大发"怎么办?
    :p