我想在文本框中需要输入浮点数,怎么控制
下面的代码出错在什么地方,请高手指点,谢谢!!
procedure Tdengjikfb.Edit5Change(Sender: TObject);
var
   temp : String;
   t ,n,pandui:integer;
begin
          temp :=Trim(Edit5.Text);
          pandui  :=0;
          t :=Length(temp);
          for n:=1 to t do
          begin
          if(temp[i]>='0')and (temp[i]<='9') then
          begin
           ;
          end
          else if(temp[i]='.')and(i<>1)and(pandui=0)then
          begin
          pandui :=1;
          end
          else
          begin
            Edit5.Text:='';
            break;
            end;
           end;end;

解决方案 »

  1.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if not ( Key in ['0'..'9','.',#8]) then
        Key := #0;
    end;
    以上编辑框只能输入0到9,小数点还有删除键
      

  2.   

    if not ( Key in ['0'..'9','.',#8]) then
      begin
         beep;
         Key := #0;
      end;
      

  3.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    var
      i: integer; //得到小数点的个数
    begin
      if not ( Key in ['0'..'9','.',#8]) then
        Key := #0;
      i := Length(StringReplace(Edit1.Text,'.','&&',[rfReplaceALL]))-Length(Edit1.Text);
      if (i > 0) and (key = '.') then
        Key := #0;
    end;