procedure TForm1.Edit1Enter(Sender: TObject);
begin
  TEdit(Sender).Text := TEdit(Sender).Hint;
end;procedure TForm1.Edit1Exit(Sender: TObject);
var
  R: Real;
  E: Integer;
begin
  TEdit(Sender).Hint := TEdit(Sender).Text;
  Val(TEdit(Sender).Text, R, E);
  if E = 0 then
    TEdit(Sender).Text := FormatFloat('$,.00', R)
  else { TODO : 错误输入 };
end;

解决方案 »

  1.   

    简单一点的办法用空格来补充
    在OnEnter事件中 edit1.text :=Trim(edit1.text);
    在OnExit事件中 
     ii :=edit1.width;
     sStr :='';
     for i:=1 to ii do 
       sStr :=sStr+' ';
     edit1.Text :=sStr+'Trim(edit1.text);
      

  2.   

    我手上有一个例子,
    我给你发一个,email?
      

  3.   

    我有一个更好的例子,可以给你发一个,email?
      

  4.   

    onexit里
    try
      Edit1.text := FormatFloat('¥,.00', strtofloat(Edit1.text))
    except
      showmessage('no');
    end;
      

  5.   

    ok,我的email是[email protected]