Die Format-Funktion weiss ja, welcher Datentyp übergeben wurde, denn eigentlich ist das ja ein Variant mit entsprechenden Informationen.
Falsch! Es ist ein
TVarRec - und die haben ebend nicht genügend Informationen über den Typen.
Hab erst gestern geschaut, ob man Format so umbauen könnte wie string.Format in .NET, die dort übergebenen Parameter sind alle object und haben somit die exakten Typeninformationen dabei.
Mit SysUtils.Format kann ich nichtmal Datum oder Zeit allein über den Formatstring ausgeben
Und woher soll write wissen, wie viele Nachkommastellen du willst? Wie viele führende Nullen?
Indem man es angibt - das erfordert aber nicht die grundsätzliche Angabe des Typens - siehe
string.Format
Übrigens solltet ihr nicht Write und Format verwechseln, die funktionieren unterschiedlich.