Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   BoolToStr = -1 ? (https://www.delphipraxis.net/90268-booltostr-%3D-1-a.html)

Chilled86 14. Apr 2007 11:51


BoolToStr = -1 ?
 
Moin, hab ma wieder ein Problem. Ich lese einen Wert aus einer Ini Datei aus,
Delphi-Quellcode:
StrToBool(ini.ReadString('Start','FirstStart', '1'));
^^falls nicht vorhanden ist er ja wie zu sehen 1 und in der Datei steht er auch auf 1. Wenn ich ihn jetzt ausgebe,
Delphi-Quellcode:
showmessage(BoolToStr(StartFirstTime));
kommt aber -1 raus. Wieso?` :wiejetzt:

SirThornberry 14. Apr 2007 11:56

Re: BoolToStr = -1 ?
 
-1 steht für True, das ist doch korrekt. Wenn du "True" oder "False" angezeigt haben willst musst du entsprechend (wie in der Hilfe beschrieben) der Funktion BoolToStr noch einen weiteren Parameter übergeben.

fkerber 14. Apr 2007 11:56

Re: BoolToStr = -1 ?
 
Hi!

Vielleicht hilft dir das hier weiter:

http://www.lohninger.com/helpcsuite/booltostr.htm



Ciao, Frederic

Chilled86 14. Apr 2007 11:58

Re: BoolToStr = -1 ?
 
ich will das ganze ja mit,
Delphi-Quellcode:
if StartFirstTime = true then begin
    Form2.show;
  end;
checken, er geht aber nicht in die if-Schleife rein...

Rakshasa 14. Apr 2007 12:01

Re: BoolToStr = -1 ?
 
Eine andere Möglichkeit wäre ja:

Code:

if (ini.ReadString('Start','FirstStart', '1') = '1') then begin
  Form2.show;
end;

SirThornberry 14. Apr 2007 12:01

Re: BoolToStr = -1 ?
 
verständlich weil True intern den Wert1 hat und deine variable den wert -1 hat.

Schreib einfach
Delphi-Quellcode:
if StartFirstTime then begin
    Form2.show;
  end;
schau dir dazu am besten mal das an:
http://www.delphipraxis.net/internal...=708174#708174

CalganX 14. Apr 2007 12:03

Re: BoolToStr = -1 ?
 
Was spricht gegen Delphi-Referenz durchsuchenReadBool? :gruebel:

Chris

Christian Seehase 14. Apr 2007 12:06

Re: BoolToStr = -1 ?
 
Moin Chilled,

Zitat:

Zitat von Chilled86
ich will das ganze ja mit,
Delphi-Quellcode:
if StartFirstTime = true then begin
    Form2.show;
  end;
checken, er geht aber nicht in die if-Schleife rein...

Ganz schlechte Idee ;-)

Wir hatten gerade erste diese Woche einen Thread zum Thema boolsche Werte auf = true / = false prüfen.
Das zu tun in ist prinzipiell keine gute Idee, da true in Delphi immer gleich 1 ist, wohingegen true im Allgemeinen als ungleich 0 anzusehen ist. In VB hat true den Wert -1.

Deine Abfrage sollte also so aussehen:

Delphi-Quellcode:
if StartFirstTime then begin
    Form2.show;
  end;

SirThornberry 14. Apr 2007 12:07

Re: BoolToStr = -1 ?
 
nichts! Es spricht etwas gegen "if irgendwas = true"
Aber wie gesagt solltest du dir mal den geposteten Link anschauen.

Prototypjack 14. Apr 2007 12:10

Re: BoolToStr = -1 ?
 
Moin,

Meines Erachtens nach gehört es zum guten Stil Boolean-Werte nur so zu überprüfen:
Delphi-Quellcode:
if not lBool then
begin
  ;
end;

if lBool then
begin
  ;
end;
So erspart man sich auch den Ärger mit etwaigen Fehlauswertungen.

Gruß,
Max

Khabarakh 14. Apr 2007 12:19

Re: BoolToStr = -1 ?
 
Einmal davon abgesehen, dass dieses Thema wirklich nun zum zehnten Male abgehandelt wird, anstatt es einfach bei dem geposteten Link zu belassen - guter Stil ist gut. Wer auf "= true" prüft, hat einfach die Grundlagen des booleschen Datentyps noch nicht verstanden. Das ist natürlich kein Vorwurf, noch ist kein Meister vom Himmel gefallen und wir alle haben wohl schon einmal solch eine Codezeile fabriziert.

Neutral General 14. Apr 2007 12:22

Re: BoolToStr = -1 ?
 
Zitat:

Zitat von Chilled86
ich will das ganze ja mit,
Delphi-Quellcode:
if StartFirstTime = true then begin
    Form2.show;
  end;
checken, er geht aber nicht in die if-Schleife rein...

Ist zwar nicht SO wichtig für diesen Thread hier aber da es noch niemand anders geschrieben hat:

if-Abfragen sind KEINE Schleifen!. Es wird ja nichts wiederholt.. ;)

Gruß
Neutral General

DP-Maintenance 14. Apr 2007 12:47

DP-Maintenance
 
Dieses Thema wurde von "alcaeus" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
Ist eine Delphi-Frage.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:38 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