Forum: Programmieren allgemein
by BadenPower,
2. Apr 2015
Na wenigstens einer der mich versteht.
Forum: Programmieren allgemein
by BadenPower,
2. Apr 2015
Ein String besteht auch nur aus 0 und 1.
Und einer Bitfolge siehst Du halt nicht an, was es letztendlich darstellen soll.
Forum: Programmieren allgemein
by BadenPower,
2. Apr 2015
Ich bleibe bei meiner Meinung, dass dies sprachlich nicht richtig ist.
Wenn "false = 0" stimmen würde, dann wäre dies möglich:
if (false = 0) then
begin
ShowMessage('False ist 0');
end;
Forum: Programmieren allgemein
by BadenPower,
30. Mär 2015
Merkst Du was?
Du hast mich doch gerade bestätigt.
Der 'Ordinalwert von False ist 0' und nicht 'False ist 0'.
Denn "A" ist ja auch nicht 65, aber der Ordinalwert.
Forum: Programmieren allgemein
by BadenPower,
30. Mär 2015
Siehe Post #12.
Wobei man dort schön sieht, dass man dann expliziet auf if (var = true) then prüfen muss, wenn man tatsächlich TRUE benötigt und nicht nur "ergibt Wahr".
Wenn man sich es richtig angewöhnt, dann gibt es keine Diskussionen.
False ist nicht 0 sondern Ord(False) = 0
Forum: Programmieren allgemein
by BadenPower,
30. Mär 2015
Im Zitat von EWeiss steht:
und dies ist eben nicht richtig, denn laut Delphi, nachzulesen unter "Boolesche Typen" ist True eben nicht 1 sondern:
Und dies ist ein gewaltiger Unterschied, den ich mit einfachen Mittel belegt habe, in dem ich einfach einen Integerwert 1 in der If-Bedingung verwendet habe.
Klar, dass dies nicht funktionieren kann, aber es sollte eben verdeutlichen, dass...
Forum: Programmieren allgemein
by BadenPower,
30. Mär 2015
BoolToStr gibt ja auch nur die Strings zurück, welche in der Funktion hinterlegt sind
function BoolToStr(B: Boolean; UseBoolStrs: Boolean = False): string;
const
cSimpleBoolStrs: array of String = ('0', '-1');
begin
if UseBoolStrs then
begin
VerifyBoolStrArray;
Forum: Programmieren allgemein
by BadenPower,
30. Mär 2015
True war noch niemals 1.
Seit ich mit Delphi und dies ist schon seit Version 1, arbeite war True immer True.
Einfach einmal testen:
Const
Pruefen = 1;
procedure TForm1.Button1Click(Sender: TObject);
Forum: Programmieren allgemein
by BadenPower,
30. Mär 2015
Wenn Du auf If Foo = True then prüfst, dann prüft Du, ob Foo den Booleanwert TRUE hat.
Wenn Du If Foo then auswertest, dann prüft Du, ob die Auswertung von Foo "Wahr" ergibt.
Und tunlichst darauf verzichten halte ich für falsch, denn es gibt Situationen, in denen man direkt auf TRUE prüfen muss.