procedure TfrmCbywcl.edtDnhKeyPress(Sender: TObject; var Key: Char);
begin
  if not (key in ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', char(VK_BACK),
    char(VK_RETURN), char(VK_LEFT), char(VK_UP), char(VK_RIGHT), char(VK_DOWN)]) then
    key := #0;
end;

解决方案 »

  1.   

    在keydownpress事件中加上:
     if key<'0' and key>'9' then
        key:=chr(0);
      

  2.   

    在keydownpress事件中加上:
     if key<'0' and key>'9' then
        key:=chr(0);
      

  3.   

    用KeyPress事件可以对每个字符进行测试,但997.98.7显然是不合法的,如何来判定呢?也要编程吗?
      

  4.   

    try
      strtofloat()
    except
      //出错
    end;
      

  5.   

    谢谢笑三少,但这样写了以后,按回车就不能跳到下一个输入框了。
    请教该如何改呢?
    if key=Char(VK_Return) then .....该怎么写?才转到Delphi,不要嫌烦啊。:)
      

  6.   

    谢谢笑三少,但这样写了以后,按回车就不能跳到下一个输入框了。
    请教该如何改呢?
    if key=Char(VK_Return) then .....该怎么写?才转到Delphi,不要嫌烦啊。:)