Einzelnen Beitrag anzeigen

jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#19

Re: Selsames verhalten bei True abfrage

  Alt 13. Apr 2007, 13:04
Zitat von EWeiss:
Ich denke das ist ein bug in Delphi.
Wenn ich einen Wert strikt als boolean definiere erwarte ich auch das nur auf true
oder false geprüft wird und nicht auf integer oder byte werte.
Nein es ist ein Bug in deiner Deklaration. Wenn du von VB eine Boolschen Wert bekommen willst oder reinreichst, musst du den Datentyp LongBool/WordBool/ByteBool statt Boolean verwenden. Delphi macht dann ganz automatisch die Übersetzung von -1 nach 1 bzw. andersherum.

Delphi-Quellcode:
var
  lb: LongBool;
  b: Boolean;
begin
  lb := True;
{ 83C8FF           or eax,-$01  }
  b := lb;
{ 83F801          cmp eax,$01
  1BC0            sbb eax,eax
  40               inc eax      }

  if b = True then
{ 3C01            cmp al,$01
  7505             jnz +$05     }

    ShowMessage('Ist True');
end;
  Mit Zitat antworten Zitat