if not key in([0..9],#8) then
exit;

解决方案 »

  1.   

    可以用IsNumeric函数判断:uses IdGlobal;
    procedure TForm1.Edit1Change(Sender: TObject);
    var
    str:string;
    i:integer;
    begin
             str:=Edit1.Text;
              for i:=1 to length(str) do
                  if not IsNumeric(str[i]) then
                  application.Terminate ;
    end;
      

  2.   

    var
     MySet:set of char;
     str1:string;
     i:integer;
    begin
     MySet:=['0'..'9'];
     str1:=Edit1.text;
     for i:=1 to length(str1) do
      if str1[i] not in MySet then exit;
    end;
      

  3.   

    用jyqkr(酷鱼)的,
    我也是这么用的,
    简单
      

  4.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
             if not(key in ['0'..'9',#8]) then
                  key:=#0;
    end;
      

  5.   

    uses IdGlobal;用了怎么不行啊?
      

  6.   

    是引用了 uses IdGlobal 后出错还是用IsNumeric 不能实现所要的功能?
      

  7.   

    delphi有IsNumeric 吗?好像vb,vbscript有!!
    IdGlobal也没有呀?????????
      

  8.   

    有的。我在程序已经实现。以下是程序的整体代码:unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TForm1 = class(TForm)
        Edit1: TEdit;
        procedure Edit1Change(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}uses IdGlobal;
    procedure TForm1.Edit1Change(Sender: TObject);
    var
    str:string;
    i:integer;
    begin
             str:=Edit1.Text;
              for i:=1 to length(str) do
                  if not IsNumeric(str[i]) then
                  application.Terminate ;
    end;end.
      

  9.   

    用个异常处理不就什么都解决了:
    procedure TForm1.Edit1Change(Sender: TObject);
    begin
      try
        StrToFloat(Edit1.Text);
      except
        //不是数字,跳出程序  
      end;
    end;