限制edit框只能输入数字。
    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if not (key in ['0'..'9','.',#8]) then
      begin
        key:=#0;
        Messagebeep(0);
      end;
    end;这种方法还是有不足之处,用户可以使用右键---粘贴,把非数字输入进去
如何也限制使用右键---粘贴

解决方案 »

  1.   

    procedure TForm1.Edit1Change(Sender: TObject);
    var
      m:Integer;
    begin
      if not TryStrtoInt(Edit1.Text,m) then
        showmessage('只能输入数字');
    end;
      

  2.   

    if (not (key in['0'..'9'])) and (KEY<>#8 then
      key:=#0;
      

  3.   

    if (not (key in['0'..'9'])) and (KEY<>#8) then
      key:=#0;
      

  4.   

    procedure TForm1.Edit1Change(Sender: TObject);
    var
      m:Integer;
    begin
      if not TryStrtoInt(Edit1.Text,m) then
        showmessage('只能输入数字');
    end;
      

  5.   

    OnExit事件中写:
    try
      StrToInt(Edit.Text);
    except
      Showmessage('erorr');
      Edit.SetFocus;
      

  6.   

    少写了一个End;
    罪过罪过。
      

  7.   

    错误代码重新定义了,呵呵
    Showmessage('erorr');
      

  8.   

    SetWindowLong(
      Edit1.Handle,
      gwl_Style,
      GetWindowLong(Edit.Handle, gwl_Style) or es_Number
    );
      

  9.   

    procedure TF_form1.Edit1Exit(Sender: TObject);
    var f:single;
    begin
    if edit1.Text<>'' then
    try
    f:=strtofloat(edit1.Text);
    except
    on E:EConvertError do begin messagedlg('只能填入数字',mtinformation,[mbok],0); edit1.SetFocus;end;
    end;