在onKeyPress里写下这些代码:
  if Not Key In['0'..'9'] then Key := #0

解决方案 »

  1.   

    onKeyPress事件中
    if Edit1.text > 9 or Edit.text < 0 then
    begin
      return;
    end;
      

  2.   

    to  NetFair;
    不行啊。编译都过不了。
    [Error] Query_Unit.pas(250): Operator not applicable to this operand type
      

  3.   

    onKeyPress事件中
    if Not (key  in ['0'..'9',#13] ) then
    key:=#0
      

  4.   

    try
       strtoint(edit1.text);   
    except
       on EConvertError do
          MessageDlg('只能输入数字,请重新输入。',mtError,[mbOK],0);
          Edit1.SetFocus;
          exit;
    end;
    为什么不能够捕获到错误????哈哈,你是不是在Delphi编译环境中不能捕获:),你到外面去,直接运行程序就可以实现了。还有,为什么在Delphi中不会捕获错误,是因为你在Debug中设置的当出现错误时显示错误信息(安装Delphi时默认是这样)。你可以去掉这个设置,但不推荐这样。
      

  5.   

    try
       strtoint(edit1.text);   
    except
       on EConvertError do
          MessageDlg('只能输入数字,请重新输入。',mtError,[mbOK],0);
          Edit1.SetFocus;
          exit;
    end;
    为什么不能够捕获到错误????哈哈,你是不是在Delphi编译环境中不能捕获:),你到外面去,直接运行程序就可以实现了。还有,为什么在Delphi中不会捕获错误,是因为你在Debug中设置的当出现错误时显示错误信息(安装Delphi时默认是这样)。你可以去掉这个设置,但不推荐这样。
    ====================================
    其实也可的,你再改一下,如是:
    var 
     i:integer;
    begin
    try
      i:= strtoint(edit1.text);   
     showmessage(inttostr(i))
    except
       on EConvertError do
          MessageDlg('只能输入数字,请重新输入。',mtError,[mbOK],0);
          Edit1.SetFocus;
          exit;
    end;
      

  6.   

    to  ihihonline(小小) :
        你的程序我试了一下,但我发现一个问题,就是只能用DELETE键才能删除输错的数据,而不能用backup键返回删除,如何解决?