AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Boolean.ToString geht nicht?!

Ein Thema von Rolf Frei · begonnen am 12. Mär 2024 · letzter Beitrag vom 13. Mär 2024
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#11

AW: Boolean.ToString geht nicht?!

  Alt 12. Mär 2024, 16:33
Hätten wir einen funktionierenden Bugtracker oder Feedback-System bei Embarcadero, könnte man das sogar dort einreichen.
Man arbeitet daran...
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#12

AW: Boolean.ToString geht nicht?!

  Alt 12. Mär 2024, 16:35
Ja, leider ist dieses ToString etwas pervers
und nicht mit BoolToStr vergleichbar.

Im Boolean-Helper gibt es auch zwei Versionen,
also einmal von der Variable aus
und dann nochmal als Class-Funktion.

Und das Gewollte bekommst du nur von der normalen Funktion, in Verbindung mit diesem TUseBoolStrs,
sonst springt es auf die Class-Function, bei deinem True,
wo die Lösung dann Boolean.ToString(b, TUseBoolStrs.True) wäre, oder eben b.ToString(TUseBoolStrs.True)
$2B or not $2B

Geändert von himitsu (12. Mär 2024 um 16:37 Uhr)
  Mit Zitat antworten Zitat
mytbo

Registriert seit: 8. Jan 2007
472 Beiträge
 
#13

AW: Boolean.ToString geht nicht?!

  Alt 12. Mär 2024, 18:07
Hat da wer eine plausible Erklärung für dieses Verhalten und wieso man da unbedingt TUseBoolStrs.True nutzen muss?
Von höchster Stelle.

Bis bald...
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#14

AW: Boolean.ToString geht nicht?!

  Alt 12. Mär 2024, 18:19
Jupp, weil es sonst die beiden gleichnamigen Funktionen / Class-Functions nicht unterscheiden kann, wenn sie den "selben" Parameter-Typ besitzen.

Dieser Scoped-Enum ist aber dahingehend pervers, weil man dessen Namen nicht kennt (ständig vergisst) und die Codevervollständigung ihn dir oft nicht sagen will.

Statt "diesem Parameter", entweder unterschiedliche Funktionsnamen für Funktion und Klassenfunktion
oder für Nummerisch (0 oder -1) und Namentlich (False oder True).


Wobei, wer um Himmels Willen nutzt überhaupt die Class-Functions .... weg mit dem Schrott. (Unterschied siehe #12)




Warum gegen eigentlich BoolToStr und ToString -1 aus, obwohl das True vom Delphi-"Boolean" eigentlich als +1 deklariert ist? (nur kleinstes Bit gesetzt)
Ja, das TRUE vom C++ im BOOL/LongBool, sowie ByteBool und WordBool, ist als -1 deklariert (alle Bits gesetzt)

Aber OK, von der Auswertung her ist es egal, da False = 0 und True = nicht 0.
(PS: drum ist if B = True then immer eine schlechte Idee)
$2B or not $2B

Geändert von himitsu (12. Mär 2024 um 18:23 Uhr)
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.944 Beiträge
 
Delphi 12 Athens
 
#15

AW: Boolean.ToString geht nicht?!

  Alt 13. Mär 2024, 00:29
Delphi-Quellcode:
var b:Boolean = true;
Showmessage(ord(b).tostring);
Oder
Delphi-Quellcode:
//Evtl reihenfolge umtauschen...habe hier keine IDE zur Hand um das zu prüfen.
Const
B2I:Array [Boolean] of Integer = (0,1);
B2S:Array [Boolean] of String = ('False, True');
I2B:array [0..1] of Boolean (false, True);
Für so typumwandlungen von kleinen ordinalen Typen wie Boolean oder Enums sollten Konnstanten Array und Ord() doch gut sein .
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:07 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