Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

AW: class operator OnesComplement ? o.O

  Alt 1. Mär 2015, 15:59
Da ich grade wieder drüber gestopert bin und meinen alten Post in Google fand... (falls es auch Andere finden)

OnesComplement ist in Delphi nicht nutzbar (auch wenn man es dort implementieren kann).
Es ist eigentlich für den C++Builder gedacht und .NET kennt den Befehl ebenfalls. LogicalNot ist also das "logische not" (Boolean) und OnesComplement das "binäre not" (Integer).

Außerdem gibt es auch noch die undokumentierten True und False.
Für if MyRecord then implementiert man somit das MyRecord.True , wobei man natürlich auch einen Implicit-Cast nach Boolean verwenden könnte.

Schachsinnig ist, daß der Delphicompiler bei if not MyRecord then nicht das MyRecord.False oder not MyRecord.True benutzt, sondern es zwanghaft nach MyRecord.LogicalNot.True übersetzen will, was beim Fehlen des LogicalNot schön knallt.

Delphi-Quellcode:
TRecord = record
  class operator OnesComplement(A: TRecord): TRecord;
  class operator True(A: TRecord): boolean;
  class operator False(A: TRecord): boolean;
end;
$2B or not $2B

Geändert von himitsu ( 2. Mär 2015 um 09:13 Uhr)
  Mit Zitat antworten Zitat