Breaking Change T1196159
Visible to All Users

The index type was changed from Integer to TdxListIndex in all DevExpress classes inherited from standard TList and TList<T> classes

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:

Delphi
TdxListIndex = {$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 or TList<T> class or have an interface to a DevExpress class that exposes a TList or TList<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.

Disclaimer: The information provided on DevExpress.com and affiliated web properties (including the DevExpress Support Center) is provided "as is" without warranty of any kind. Developer Express Inc disclaims all warranties, either express or implied, including the warranties of merchantability and fitness for a particular purpose. Please refer to the DevExpress.com Website Terms of Use for more information in this regard.

Confidential Information: Developer Express Inc does not wish to receive, will not act to procure, nor will it solicit, confidential or proprietary materials and information from you through the DevExpress Support Center or its web properties. Any and all materials or information divulged during chats, email communications, online discussions, Support Center tickets, or made available to Developer Express Inc in any manner will be deemed NOT to be confidential by Developer Express Inc. Please refer to the DevExpress.com Website Terms of Use for more information in this regard.