Hi,
habe das gerade ausprobiert und das gleiche Verhalten wie Rolf. Irgendwie kommt der Compiler mit der überladenen Funktion vom Helper durcheinander. Wenn man der .ToString-Methode True übergibt (ruft BoolToStr auf), interpretiert das die aufgerufene BoolToStr-Methode komischerweise als False. Es funktioniert nur, wenn den gewünschten Parameter TUseBoolStrs.True benutzt wird, obwohl TUseBoolStrs ja auf True oder False verweist, was irgendwie komisch ist.
Delphi-Quellcode:
var
b: Boolean;
s: string;
begin
b := True;
s := b.ToString; //-1, richtig
s := b.ToString(True); //-1, obwohl 'True' erwartet, siehe Rolfs Kommentar
s := b.ToString(TUseBoolStrs.True); //'True', richtig
s := BoolToStr(b, True); //'True', richtig
end;
Die Rückgabe von 0 und -1 ist richtig, siehe Doku:
https://docwiki.embarcadero.com/Libr...tils.BoolToStr
Als Alternative kannst du einfach
s := BoolToStr(b, True);
benutzen.