如何使edit只能输入数字啊?

解决方案 »

  1.   

    在edit控件的KeyPress事件中,procedure TfrmSysSetUp.EditPortKeyPress(Sender: TObject; var Key: Char);
    begin
       if not (key in ['.', '0'..'9']) and (key <> #13)  and ((key
          <> #8)) then
          Key := #0;
    end;
      

  2.   

    给你一段代码:
    var
       s:set of char;
       i:integer;
    begin
     if key=#13 then
      ComboBox2.SetFocus;
      s:=['.',#8,'0'..'9'];
      i:=pos('.',edit1.text);
      if i>0 then
       s:=s-['.'];
      if (i>0)and(i=length(edit1.text)-2) then    
        begin
             key:=#0;
             exit;
        end;
      if not (Key in s)then
        Key := #0;
    end;
      

  3.   

    呵呵
       你要么自己做控件 改造EDIT 
      

  4.   

    忘记了:
    //if key=#13 then
      //ComboBox2.SetFocus;
    应去掉.
      

  5.   

    //只能输入数字和小数点
      if not (key in['0'..'9','.',#8]) then key:=#0;
      

  6.   

    if (key<'0') or (key>'9') then
    begin
    .......
    //做你的事
    ...
    end
      

  7.   

    procedure TfrmSysSetUp.EditPortKeyPress(Sender: TObject; var Key: Char);
    begin
       if not (key in ['.', '0'..'9']) and (key <> #13)  and ((key
          <> #8)) then
          Key := #0;
    end;
    我也经常用这个,呵呵
      

  8.   

    在该edit控件的KeyPress事件中写上如下代码:
      if not (key in['0'..'9',#13,#8]) then
        key:=#0;
      

  9.   

    试试这个
    str := Edit1.Text;
    if not (key in['0'..'9',#13,#8,#46]) then
      if (pos('.', str) > 0) then
        key:=#0;