如何判断Edit1输入的是不是纯数字(串)?

解决方案 »

  1.   


    function IsDigital(Value: string): boolean;
    var
      i, j: integer;
      str: char;
    begin
      result := true;
      Value := trim(Value);
      j := Length(Value);
      if j = 0 then
      begin
        result := false;
        exit;
      end;
      for i := 1 to j do
      begin
        str := Value[i];
        if not (str in ['0'..'9']) then
        begin
          result := false;
          exit;
        end;
      end;
    end;调用:
    if IsDigital(edit1.text) then
    showmessage('全是数字')
    esle
    showmessage('还全是数字');
      

  2.   

    if key not in [0..9] then
    key=#0
      

  3.   

    调用:if IsDigital(edit1.text) then
    ShowMessage('全是数字')
    else
    showmessage('还全是数字');
      

  4.   

    笔误,更正一下:if IsDigital(edit1.text) then
    ShowMessage('全是数字')
    else
    showmessage('不全是数字');
      

  5.   


      if ((StrToFloatDef(Edit1.text, 65535)  = 65535) and (Edit1.text <> '65535'))  then
        showmessage('no number')
      else
        showmessage('Is Number');或者
      var
        FNumber: real;
      try
        FNumber := StrToFloat(edit1.text);
      except
        on error do
           showmessage('not number');
      end;
      

  6.   

    兄弟 ,那个IsDigital 函数要放在哪里? 怎么我不管放哪都说没定义啊
      

  7.   


    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TForm1 = class(TForm)
        Edit1: TEdit;
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
        function IsDigital(Value: string): boolean;
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}
    function TForm1.IsDigital(Value: string): boolean;
    var
      i, j: integer;
      str: char;
    begin
      result := true;
      Value := trim(Value);
      j := Length(Value);
      if j = 0 then
      begin
        result := false;
        exit;
      end;
      for i := 1 to j do
      begin
        str := Value[i];
        if not (str in ['0'..'9']) then
        begin
          result := false;
          exit;
        end;
      end;
    end;
    procedure TForm1.Button1Click(Sender: TObject);
    begin
     if IsDigital(edit1.text) then
    ShowMessage('全是数字')
    else
    showmessage('不全是数字');
    end;end.
      

  8.   

    限制输入的字符就行了嘛。 :)onEdit1KeyPress(sender:tobject ;var key char);begin
     if not (key in ['0'..'9',#8,#13]) then key:=#0;end;
      

  9.   

    TryStrToInt
    TryStrToFloat
    ...
      

  10.   

    还在在限制输入好.
    在KeyPress事件中写上就行了
      if not(Key in ['0'..'9',#8]) then Key := #0;