AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Double-Werte in Listview formatieren (Preise mit '0.00')

Double-Werte in Listview formatieren (Preise mit '0.00')

Ein Thema von Markus Effenberger · begonnen am 13. Jan 2019 · letzter Beitrag vom 15. Jan 2019
Antwort Antwort
Markus Effenberger

Registriert seit: 2. Jul 2014
21 Beiträge
 
Delphi 10.3 Rio
 
#1

Double-Werte in Listview formatieren (Preise mit '0.00')

  Alt 13. Jan 2019, 22:43
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:
  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;
Geht aber nicht, weil man "AsString" nichts zuweisen kann

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
  Mit Zitat antworten Zitat
Schokohase

Registriert seit: 17. Apr 2018
567 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

AW: Double-Werte in Listview formatieren (Preise mit '0.00')

  Alt 13. Jan 2019, 22:49
Schau mal da
https://stackoverflow.com/questions/...s-customformat
vorbei
  Mit Zitat antworten Zitat
Markus Effenberger

Registriert seit: 2. Jul 2014
21 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Double-Werte in Listview formatieren (Preise mit '0.00')

  Alt 14. Jan 2019, 21:42
Danke, der dortige Hinweis zu den Properties war gut.
Allerdings war die Lösung jetzt dort das "currency" auf True zu setzen.

Markus
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
153 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#4

AW: Double-Werte in Listview formatieren (Preise mit '0.00')

  Alt 15. Jan 2019, 19:58
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.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf