Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#14

AW: Delphi 12 / TList unter 64 Bit funktioniert nicht mehr wie unter 11.3

  Alt 18. Jun 2024, 15:59
Warum bei NativeInt ein Cast ( in Delph 11.3) notwendig ist - entzieht sich meiner Kenntnis.
Das default Items in TObjectList ist mit NativeInt als Index deklariert. Die Items Deklaration in TBauteilList überschreibt das nicht etwa, sondern wird als override Property interpretiert. Je nach Compiler und Typ des übergebenen Index wird nun die Variante mit Index oder die mit NativeInt verwendet.
Delphi-Quellcode:
      LBauteil1 := LBauteilList[i]; { 1 }
      LBauteil2 := LBauteilList[LBauteilList.Count-1]; { 2 }
In {1} wird ein Integer übergeben, was auf die Deklaration in TBauteilList.Items aufgelöst wird. In {2} is LBauteilList.Count aber ein NativeInt, was bei der Subtraktion erhalten bleibt. Das wird dann unter Win64 auf TObjektList.Items aufgelöst und führt zu dem Incompatible Types Fehler.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat