What Changed
We changed index type from Integer
to TdxListIndex
in all DevExpress VCL classes inherited from standard TList
and TList<T>
classes.
The new TdxListIndex
type is declared as follows:
DelphiTdxListIndex = {$IFDEF DELPHI120}NativeInt{$ELSE}Integer{$ENDIF};
Reasons for Change
This change addresses the list index type change from Integer
to NativeInt
introduced in Embarcadero RAD Studio® 12.0.
Impact on Existing Apps
This change affects only the projects that meet the following criteria:
- Contain a custom descendant of a DevExpress class derived from the standard
TList
orTList<T>
class or have an interface to a DevExpress class that exposes aTList
orTList<T>
method that accepts an index as a parameter. - The resulting application is built with a 64-bit compiler in RAD Studio® 12.0 or a newer IDE.
If a descendant of an affected class overrides an indexed Items
property or implements a custom default indexed property, the resulting application can call an incorrect getter of one of the base classes.
If a custom interface exposes a method that accepts an index as a parameter, a compilation error may occur.
How to Update Existing Apps
To update affected custom list descendants, change the list index type from Integer
to TdxListIndex
at all occurrences.