@PascalDragon: Ich verstehe
jetzt schon, worum es technisch geht, aber es ist ein Falle für Benutzer, welche mit der Problematik nicht vertraut sind.
Ich bin jedenfalls voll reingefallen. Ich hatte mir auch die Parameterliste nicht genauer angeschaut, weil ich es intuitiv wohl nicht für möglich gehalten hatte, dass dort ein Parameter "True" den Wert setzt. Das ist auf den ersten Blick einfach unlogisch:
Code: Alles auswählen
var Test:Boolean;
...
Caption:=Test.ToString(true); //"true" andert den Wert des Resultats, statt den von BoolStrs.
Kann man das nicht anders lösen?
Wenn man bei der Klassenfunktion keinen Standard angeben würde, käme man da auch nicht mit
einem Boolean Parameter davon und der Compiler würde einen darauf aufmerksam machen. Also so
Code: Alles auswählen
TBooleanHelper = Type Helper for Boolean
public
...
Class Function ToString(const AValue: Boolean; UseBoolStrs: TUseBoolStrs): string; overload; inline; static;
statt so:
Code: Alles auswählen
TBooleanHelper = Type Helper for Boolean
public
...
Class Function ToString(const AValue: Boolean; UseBoolStrs: TUseBoolStrs = TUseBoolStrs.False): string; overload; inline; static;
Oder denke ich falsch?