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

解决方案 »

  1.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
     if pos(key,'0123456789') =0 then 
     begin 
       messagebeep(1); 
       key:=#0;
     end; 
    end;
      

  2.   

    procedure Tf_cx_j.Edit1Exit(Sender: TObject);
    begin
        if edit1.Text='' then
        exit else
        try
        strtodate(edit1.Text);
        except
        begin
        messagebox(f_cx_j.Handle,'请输入正确的数字格式!','提示',mb_ok+mb_iconwarning);
        edit1.SetFocus;
        end;
    end;
    end;
      

  3.   

    来个最简单的  :)setwindowlong(edit1.Handle,GWL_STYLE,getwindowlong(edit1.Handle,GWL_STYLE) or ES_NUMBER);
      

  4.   

    哈哈,楼上的各有千秋,但是都忽略了一个问题:
    如果要我用ctrl_v上去就不行了~~所以,建议在onchange事件里写判断用
    zzzai(zzzai) 的方法。
    另,用pos好象也可以。
      

  5.   

    StrToIntDef(Edit1.text,0);
    将Edit1.text转换为Int,如果不能转换就赋0
      

  6.   

    哦,我发完了,40Star(陪你去看--☆流星雨★) 的不用这么麻烦了~~~~~
    高!
      

  7.   

    不行,40Star(陪你去看--☆流星雨★)的方法也可以粘贴~~~~~~
      

  8.   

    同意,lizhenjia(暴雪) (  )
    好像还应该加上回车,退格。