使用 Delphi 的货币格式

Currency Formatting with Delphi

我正在尝试在 Delphi 中编写代码,它将以货币格式显示给定的数字,如下所示:

现在,如果填充整数和另一个字段,它会起作用,直到任何参数被更新。 我很高兴有一个代码可以在我写的时候以货币格式显示数字。我试图通过输入以下内容来管理它:

procedure TForm1.EditZakladChange(Sender: TObject);
var zaklad: Currency;
begin
  zaklad := StrToFloat(EditZaklad.Text);
  EditZaklad.Text := FloatToStrF(zaklad, ffCurrency, 10, 2);
end;

end.

但是每次在(zaklad字段)输入someting时,都会出现这个错误:

有人可以帮我吗?

确保 edtZakladMaxLength 为 0。

var
  Form21: TForm21;
  Check:string; //to break the loop.

function GetCurrency(Num: String):string;
var
  i: Integer ;
  Str:String;
  zaklad: Currency;
begin
  Result := '';
  for i := 1 to length(Num) do
  begin
    if (Num[i] in ['0'..'9']) then
    Begin
      Str := Str + Num[i] ;
      zaklad := StrToFloat(Str);
      Result := FloatToStrF(zaklad, ffCurrency, 10, 2);
      Check := Result;
    End;
  end;
end;

function ExtractCurrencySymbol(zaklad: String):string;
var
  i: Integer ;
  Str:String;
begin
  Result := '';
  for i := 1 to length(zaklad) do
  begin
    if NOT (zaklad[i] in ['0'..'9','.',',']) then
    Begin
      Str := Str + zaklad[i];
      Result := ' '+Trim(Str);
  end;
  end;

end;

procedure TForm21.EditZakladChange(Sender: TObject);
begin
  if AnsiPos(Check,EditZaklad.Text) <> 0 then exit;
  if (Trim(EditZaklad.Text) = '') then exit
  else
  begin
    EditZaklad.Text := GetCurrency(EditZaklad.Text)+ExtractCurrencySymbol(EditZaklad.Text);
    Exit;
  end;
end;

我希望这就是你所要求的。