我正在尝试在Delphi中编写代码,它将以货币格式显示给定的数字,如下所示:
现在它可以填充整数和另一个字段,直到更新任何参数。 我很乐意有一个代码,当我写它时会以货币格式显示一个数字。我试着通过输入以下内容来管理它:
procedure TForm1.EditZakladChange(Sender: TObject);
var zaklad: Currency;
begin
zaklad := StrToFloat(EditZaklad.Text);
EditZaklad.Text := FloatToStrF(zaklad, ffCurrency, 10, 2);
end;
end.
但每当输入某些内容(zaklad字段)时,会出现此错误:
有人可以帮帮我吗?
答案 0 :(得分:0)
确保 edtZaklad 的 MaxLength 为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;
我希望这就是你所要求的。