Einzelnen Beitrag anzeigen

Delphi.Narium

Registriert seit: 27. Nov 2017
2.508 Beiträge
 
Delphi 7 Professional
 
#7

AW: In Stringgrid mit Currency - Werten rechnen

  Alt 18. Jan 2022, 16:15
Auch wenn es ein unglücklicher Weg ist (siehe vorherige Kommentare zu Unterschied Datenhaltung / Datenanzeige)

Was muss aus 100,00 € entfernt werden, um eine "berechenbare" Zahl daraus zu machen?
Delphi-Quellcode:
function MachStringZuZahl(AZahl : String) : Float;
begin
  AZahl := AnsiReplaceText(AZahl,'',''); // Eurozeichen wegmachen.
  AZahl := AnsiReplaceText(AZahl,'.',''); // Tausenderpunkt entfernen.
  AZahl := AnsiReplaceText(AZahl,',','.'); // Dezimalkomma in Dezimalpunkt ändern.
  AZahl := Trim(AZahl); // Führende und folgende Leerzeichen entfernen.
  Result := StrToFloat(AZahl); // Hoffen wir, dass die Konvertierung in eine Zahl nun klappt.
end;
Delphi-Quellcode:
function SummiereSpalte(iSpalte : Integer; sg : TStringGrid) : String;
var
  fSumme : Float;
  i : Integer;
begin
  fSumme := 0;
  for i := 1 to sg.Rows - 1 do begin
    fSumme := fSumme + MachStringZuZahl(sg.Cells[iSpalte,i]);
  end;
  Result := CurrToStrF(fSumme,ffCurrency,2);
end;
Delphi-Quellcode:
// In irgendeinen ButtonClick oder sonstwo:
begin
  Label1.Caption := SummiereSpalte(1, StringGrid);
end;
Und nein, das ist weder schön noch sinnvoll, könnte aber trotzdem so in der Art funktionieren. Ist halt nur hingedaddelt und eher als Beispiel für "So macht man das besser nicht!" gedacht
  Mit Zitat antworten Zitat