Ich würde es, auf die Schnelle, so machen:
Delphi-Quellcode:
procedure TForm1.Edit1Change(Sender: TObject);
var
asString: String;
asInteger: Integer;
begin
asString := Edit1.Text;
asString := asString.Replace(FormatSettings.ThousandSeparator, EmptyStr);
if Integer.TryParse(asString, asInteger) then begin
Edit1.Text := String.Format('%.0n', [ asInteger.ToSingle() ]);
Edit1.SelStart := String(Edit1.Text).Length;
Edit1.SelLength := 0;
end;
end;
Finde es aber keine gute Idee, weil so etwas nie vernünftig klappt wenn ich z.B. am Anfang oder mittendrin mit dem Tastatur-Cursor etwas herauslösche dann der String wieder kürzer werden kann. Das verwirrt immer. Ich würde, zum schön aussehen, ein Label daneben machen wo es im Endeffekt noch einmal redundant, aber im "schön" drinsteht. Denn als nächstes willst du einen Suffix wie ein Währungszeichen noch mit drin haben, da wird das noch verwirrender. Ich würde es nicht machen.