Einzelnen Beitrag anzeigen

itsChris

Registriert seit: 29. Jul 2022
14 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Boolean.ToString geht nicht?!

  Alt 12. Mär 2024, 13:46
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.

Geändert von itsChris (12. Mär 2024 um 13:54 Uhr)
  Mit Zitat antworten Zitat