Delphi-PRAXiS
Seite 1 von 2  1 2      

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


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:22 Uhr.
Seite 1 von 2  1 2      

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