Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   FMX Stringgrid Column Custom Format (https://www.delphipraxis.net/192916-fmx-stringgrid-column-custom-format.html)

Devil1925 1. Jun 2017 11:05

FMX Stringgrid Column Custom Format
 
Moin, Ich habe für ein TListView was gefunden für die Eigenschaft "CustomFormat". Jetzt hatte ich gehofft, das das auch bei einem Stringgrid funktioniert für einzelne Spalten. Allerdings scheinen die Formate hier nicht zu funktionieren. Kann mir das einer kurz erklären wie das geht? oder mir zeigen wo ich informationen dafür finde?

Devil1925 8. Jun 2017 10:42

AW: FMX Stringgrid Column Custom Format
 
So, ich habe jetzt noch mal weitergesucht, und herausgefunden, dass es die Livebindings-Methode "Format" gibt. in der OH habe ich jetzt folgende beschreibung gefunden:

Zitat:

Zitat von Delphi OH
Format(Format-String, Argument 1, Argument 2, …)


Entspricht System.SysUtils.Format mit der Ausnahme, dass kein Array als zweiter Parameter erwartet wird, sondern ein beliebiges Argument als zusätzlicher Parameter akzeptiert wird.

Der Delphi-Formatmethode Format('%d %d', [1, 2]) entspricht beispielsweise
Delphi-Quellcode:
Format("%d %d", 1, 2)
.

jetzt versuche ich das schon eine ganze zeit mit z.B.
Delphi-Quellcode:
 Format("%8.2f", %s)
oder
Delphi-Quellcode:
 Format("##.00", %s)
und vielen anderen Sachen. Irgendwo hab ich gelesen, dass ich im Format-String ein Doppeltes Prozent zeichen brauche, und habe es dementsprechend auch so probiert:
Delphi-Quellcode:
 Format("%%8.2f", %s)
. Aber auch so Funktioniert es nicht. hat hier noch jemand eine Idee?

Rollo62 8. Jun 2017 10:59

AW: FMX Stringgrid Column Custom Format
 
Das funktioniert eher wie C/C++ code Format:

Delphi-Quellcode:
 Result := Format ('%8.2f %5.3f %s', [123.456, 234.567, 'DataString']);
mit den Formatbezeichnern wie im Link aufgeführt.
So ganz C/C++ kompatibel ist es leider nicht, insbesondere bei den links/rechtsbündig und Auffüllen mit Nullen.

Rollo

Devil1925 8. Jun 2017 11:06

AW: FMX Stringgrid Column Custom Format
 
Da ja kein Array erwartet wird, müsste das dann doch einfach
Delphi-Quellcode:
Format('%8.2f', %s)
sein oder? also das '%8.2f' als FormatString und das %s ist dann der Datenwert.

Rollo62 8. Jun 2017 14:18

AW: FMX Stringgrid Column Custom Format
 
In deinem Link zum DocWiki steht doch eindeutig das es array of const sein sollte
Zitat:

function Format(const Format: string; const Args: array of const): string;
Funktioniert das damit denn nicht ?
die Variablentypen müssen natürlich auch dem Formatbeiteichner entsprechen: %f = float, %s = string, usw

Habs nochmal etwas klarifiziert, es sollten natürlich besser Variablen sein:
Delphi-Quellcode:
var
  dbl : Double;
  sgl : Single;
  sStr : String;

begin
  dbl := 123.456;
  sgl := 234.567;
  sStr := 'DataString';
  Result := Format ('%8.2f %5.3f %s', [dbl, sgl, sStr]);
end;
Rollo

Devil1925 8. Jun 2017 14:51

AW: FMX Stringgrid Column Custom Format
 
Das in dem Link steht, dass ein Array of Const erwartet wird habe ich verstanden. Für die CustomFormat Methoden steht allerdings da auch, dass hier kein Array erwartet wird :o bin entsprechend verwirrt. (Tut mir leid wenn ich heute etwas schwer von begriff bin .-. hab letzte Nacht zu wenig geschlafen)

Habe jetzt also Folgendes angegeben:
Delphi-Quellcode:
Format('%8.2f', [%f])
. Hier bekomme ich die Fehlermeldung
Code:
 Format 'Format('%8.2f', [%f])' ungültig oder nicht kompatibel mit Argument.

Rollo62 8. Jun 2017 16:01

AW: FMX Stringgrid Column Custom Format
 
Zitat:

[%f])
hier sollte auch eine FLOAT Variable reinkommen, kein String.

Rollo


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:11 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz