怎么限制在文本框中只输入数字?
不要只告诉我这样:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if not (key in ['0'..'9','-',#8,#13]) then  key:=#0;
end;要求:不可以输入这样的字符串:  333.333.333.333.
                              -5555.33-54.454

解决方案 »

  1.   

    to zsr(老牛) 能贴出源码来吗?
      

  2.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if not (key in ['0'..'9','-',#8,#13]) then  key:=#0;
      if (key='-')and(length(trim(edit1.text))=0) then key:=#0;
      if (key='.')and(pos('.',edit1.text)>0) then key:=#0;
    end;
      

  3.   

    这个可以在keypress中判断呀
    var
      s:string;
      p:integer;
    begin
      p:=0;
      s:=edit1.text;
      for i:=1 to length(s) do
      begin
        if s[i]='.' then inc(p);
      end;
      if p>1 then showmessage('Error');end;
      

  4.   

    procedure EditIsNumber(mStr: Tedit);
    var
      I: Real;
      E: Integer;
    begin
      if mstr.Text<>'' then
      begin
      Val(mStr.Text, I, E);
      if E<>0 then
        begin
          mStr.Text := '';
          showmessage('请输入一个数字');
          mStr.SetFocus;
        end;
      end;
    end;
      

  5.   

    请大家先看好要求条件好不好.
    不要一来就回答
    还有,要知道只能输入数字后还可以输入以下的键."home""end"和光标,if (key='-')and(length(trim(edit1.text))<>0) then key:=#0;
    但是输入-后可以移到"-"的左边去输入数字,这样就会变成负号在数字前面的样式了.
      

  6.   

    var
      p:currency;
    begin
     try
       p:=StrToCurr(Edit1.Text);
     except
       showmessage('只能输入数字!');
     end;
    end;
      

  7.   

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

  8.   

    继承EDIT类,重载Edit1KeyPress,自己编个组件