一个输入框EDIT,里面只能输入数字,可以是整数或者是小数,小数的话比如是1.75,会自动变为1.8,如果是1.7.5这样输入了两个小数点的话,也要能认得出来,请问这个判断的代码该怎么写啊?

解决方案 »

  1.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if not (key in ['0'..'9','.',#8]) then key:=#0;
    end;procedure TForm1.Edit1Exit(Sender: TObject);
    begin
     try
       StrToFloat(Edit1.Text);
       Edit1.Text:=Format('%.1f',[StrToFloat(Edit1.Text)]);
     except
       Edit1.SetFocus;   //出错,光标仍置给此EDIT,也可加自己的提示代码....
     end;
    end;
      

  2.   

    小数的话只能有2位小数的话我也改一下:Edit1.Text:=Format('%.2f',[StrToFloat(Edit1.Text)]);
      

  3.   

    应该在OnExit事件中写判断代码!
      

  4.   

    可是一运行到StrToFloat(Edit1.Text);就会出错啊。
      

  5.   

    那是因为你在Delphi的环境中执行了代码,你可以去执行那个编译好的EXE文件,就不会弹出DELPHI的报错提示了。
    另外,如果你想在DELPHI环境中也不弹出DELPHI的报错提示的话,请这样:
    Tools-->Debugger Options
    在弹出的窗口中,把Integrates debugging的前面的勾勾去掉,这时,DELPHI出会执行你自己在try..except中定义的出错提示