Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Erkennen ob Bildschirmsch. bzw. Bildschirmsperre aktiv ist (https://www.delphipraxis.net/93078-erkennen-ob-bildschirmsch-bzw-bildschirmsperre-aktiv-ist.html)

Sir Rufo 6. Dez 2010 12:33

AW: Erkennen ob Bildschirmsch. bzw. Bildschirmsperre aktiv ist
 
Zitat:

Zitat von himitsu (Beitrag 1066547)
Boolean = delphieigener Typ (da sollte einem schnell klar werden, daß dieser bei der WinAPI nicht unbedingt was zu suchen hat)

aktuell:
BOOL = LongBool (LongInt) = 4 Byte (False=0 und False=-1)
Boolean = 1 Byte (False=0 und False=1)
Boolean <> ByteBool = 1 Byte (False=0 und False=-1)
(beim Prüfen: True <> 0)

Ich habe zwar verstanden, was du meinst, aber es ist faktisch falsch :mrgreen:

BOOL = LongBool (LongInt) = 4 Byte (False=0 und True=-1)
Boolean = 1 Byte (False=0 und True=1)
Boolean <> ByteBool = 1 Byte (False=0 und True=-1)

DeddyH 6. Dez 2010 12:34

AW: Erkennen ob Bildschirmsch. bzw. Bildschirmsperre aktiv ist
 
Moment, ist true nicht alles <> 0? Oder weshalb predigen wir immer, dass man nicht auf true prüfen soll?

himitsu 6. Dez 2010 12:37

AW: Erkennen ob Bildschirmsch. bzw. Bildschirmsperre aktiv ist
 
Zitat:

Zitat von Schwedenbitter (Beitrag 1066554)
@himitsu
Danke für die Erklärung. Das ist einleuchtend. Aber warum klappte das bislang?

Erstmal hattest du Glück, daß der Pufferüberlauf entweder nichts Wichtiges überschrieb oder die Speicherausrichtung dir zufällig half.

Und BOOL/LongWool ist 4 Byte, wenn da bei einem True zufällih im niedrigsten Byte ein/einige Bits gesetzt sind, dann wird das auch als True erkannt.

Fazit: du hattest viel Glück


@Sir Rufo: jupp, war'n Denk/-Schreibfehler :oops:
@Detlef: Ja, beim Prüfen muß auf <>0 (not false) verglichen werden.
Die Konstanten für TRUE geben ja nur einen möglichen Wert for.
WinAPI 0 und -1 und beim Delphi-Boolean ist es 0 und 1 und schon erkennt man auch ein kleines Problem ala -1 <> 1.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:31 Uhr.
Seite 3 von 3     123   

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