![]() |
Double-Werte in Listview formatieren (Preise mit '0.00')
Moin!
Wenn man eine Tabelle mit Preisen an eine Listview per LiveBindings verbindet, so entsteht bei z.B. 1 Euro der Text '1'. Bei 1,10 Euro entsteht der Wert '1,1'. Die Werte in der Tabelle sind vom Typ Float. Es wird FMX genutzt. Also möchte ich die Werte nachträglich formatieren (weil sie ja im Item eh zu Text werden) und habe mir folgendes gedacht:
Code:
Geht aber nicht, weil man "AsString" nichts zuweisen kann :wall:
frmBestellen.ListView.BeginUpdate;
for i := 0 to frmBestellen.ListView.ItemCount - 1 do begin frmBestellen.ListView.Items[i].Objects.FindObject('TPreis').Data.AsString := FormatFloat('0.00', StrToFloat( frmBestellen.ListView.Items[i].Objects.FindObject('TPreis').Data.AsString ) ); end; frmBestellen.ListView.EndUpdate; Weiß jemand eine Lösung, wie man nachträglich in die dynamischen Elemente (TextObjecte) schreiben kann? Es handelt sich um eine ListView mit DynamicAppearance. Schönen RestAbend wünsche ich noch :) Markus PS: Es handelt sich um Delphi 10.3 |
AW: Double-Werte in Listview formatieren (Preise mit '0.00')
|
AW: Double-Werte in Listview formatieren (Preise mit '0.00')
Zitat:
Allerdings war die Lösung jetzt dort das "currency" auf True zu setzen. Markus |
AW: Double-Werte in Listview formatieren (Preise mit '0.00')
Naja, Currency statt Float zu benutzen ist ja auch korrekt, da man sich sonst
ggf. ungewollte Rundungsfehler in der Währungsarithmetik einfängt. Geldbeträge generell sollten keine Floats sein, da man bei Floats nie ganz sicher sein kann, ob alle Beträge auch wirklich darstellbar sind. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:02 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz