设Edit1.Maxlength:=3;
在edit.onpress中
var str:string;
begin
  str:=Edit.text;
if (length(str)=0)or(length=2) then
begin
  if key not in ['1'..'9'] then
     key=#0;
end
else if (length(str)=1 then
  if key not in['.'] then
     key=#0;
end;

解决方案 »

  1.   

    在其OnExit事件中写代码:procedure TForm1.Edit1Exit(Sender: TObject);
    begin
    if Length(Edit1.Text)>3 then
    begin
    ShowMessage('请重新输入');
    (Sender as TEdit).SetFocus;
    exit;
    end;
    try
      strtofloat(Edit1.Text);
      if pos('.',Edit1.Text)<> 2 then
      begin
        ShowMessage('请重新输入');
        (Sender as TEdit).SetFocus;
      end;
    except
    ShowMessage('请重新输入');
    (Sender as TEdit).SetFocus;
    end;
    end;
      

  2.   

    你还可以先判断必须是<10>1的数。
      

  3.   

    看看下面的怎么样?
      if not (key in['0'..'9','.',#8,#13,#46])  then
      begin
        key:=#0;
      end;其中#13是回车键,#46是退格键,