Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6923741
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 27, 20262026-05-27T10:34:31+00:00 2026-05-27T10:34:31+00:00

Before I begin, I would like to point out that I have honestly and

  • 0

Before I begin, I would like to point out that I have honestly and genuinely searched repeatedly and exhaustively via Google for such a thing, and been unable to find one.

I require (for a project I’m developing) a list of all Delphi (2007 to the very latest released version, I no longer support any version older than 2007) “Language Features”, and the versions in which they were introduced and (where applicable) deprecated, improved or removed.

I have noted similar questions to this on Stack Overflow before, though most of those were phrased in the form of “which feature is best”, and closed as deemed unsuitable.

If anyone knows of such a list (or has enough spare time to compile one), I would be very grateful.

The accepted answer will either contain a link to such a list, or the list itself.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-27T10:34:31+00:00Added an answer on May 27, 2026 at 10:34 am

    Note that this answer only lists new language features
    not new VCL/FMX features.

    Here are the links to the RAD Studio docwiki:

    • What’s new in RAD studio 12 Athens
    • What’s new in RAD Studio 11 Alexandria
    • What’s new in Rad Studio 10.4 Sydney
    • What’s new in Rad Studio 10.3 Rio
    • What’s new in Delphi and C++Builder 10.2 Tokyo
    • What’s new in Delphi and C++Builder 10.1 Berlin
    • What’s new in Delphi and C++Builder 10 Seattle
    • What’s new in Delphi and C++Builder XE8
    • What’s New in Delphi and C++Builder XE7
    • What’s New in Delphi and C++Builder XE6
    • What’s New in Delphi and C++Builder XE5 (wayback)
    • What’s New in Delphi and C++Builder XE4
    • What’s New in Delphi and C++Builder XE3
    • What’s New in Delphi and C++Builder XE2
    • What’s New in Delphi and C++Builder XE
    • What’s New in Delphi and C++Builder 2010
    • What’s New in Delphi and C++Builder 2009
    • What’s New in RAD Studio (Delphi for Win32 2007)
    • What’s New in RAD Studio (C++Builder 2007)
    • What’s New in Delphi 2006
    • What’s New in Delphi 2005
    • What’s New in Delphi 7
    • What’s New in Delphi 6
    • What’s New in Delphi 5
    • What’s New in Delphi 4
    • What’s New in Delphi 3
    • What’s New in Delphi 2
    • Delphi 1 Features

    The full list from Embarcadero: What’s New
    See also: David I’s list
    See also: Delphi Master Release List wiki


    To summarize:

    Delphi 12

    • Long and multiline string literals
    • NativeInt/NativeUInt have been downgraded to weak aliases
    • The Delphi32 compiler now handles NaN comparisons according to IEEE754

    Delphi 11

    • Binary Literals and Digit Separators
    • Inline assembler support for AVX instructions (AVX-512)
    • New record helpers: TDateTimeHelper and TCurrencyHelper
    • macOS ARM 64-bit target platform

    Delphi 10.4

    • Unified memory management on all platforms – full ARC compiler has been removed and all compilers now use manual (classic) memory management for objects
    • Custom managed records
    • Support for macOS 64-bit
    • Support for Android 64-bit

    Delphi 10.3

    • The 64-bit Linux compiler no longer uses ARC, it instead uses the default manual managed, which is the same as in the Windows compiler. This makes porting code from Windows or OSX to Linux much easier.
    • Inline variables with automatic type inference
    • 8 bit AnsiChar/AnsiString support in enabled on Linux.
    • C++Builder and Delphi now use the same ABI for all calls.

    Delphi 10.2 Tokyo

    • Support for Linux server apps (Intel 64-bit using LLVM and ARC).
    • Assigning a dynamic arrays to a pointer using the @ operator is only allowed when hard-casting the array.
    • More flexible namespace resolution of unit names

    Delphi 10.1 Berlin

    • Native support for Utf8String and RawByteString type on all platforms
    • The [weak], [unsafe] and [volatile] attributes are supported on all compilers.
    • The size of extended on OSX is now 16 bytes.
    • class and record helpers cannot access private members of the classes or records they extend.
    • Support for Android up to 6.01.

    Delphi 10 Seattle

    • Support for Android 5.1.1 and iOS 8.4
    • Improved OSX exception handling

    Delphi XE8

    • Support for 64-bit iOS;
    • New integer types: FixedInt, FixedUInt 32-bit integer types on all platforms;
    • New platform dependent integer types: LongInt, LongWord (64-bits on iOS-64, 32-bits on all other platforms);

    Delphi XE7

    • String-Like Operations Supported on Dynamic Arrays

    • Parallel Library added to the RTL

    • New compiler intrinsic routines (undocumented):

      function IsManagedType(T: TypeIdentifier): Boolean; function HasWeakRef(T: TypeIdentifier): Boolean; function GetTypeKind(T: TypeIdentifier): TTypeKind; function IsConstValue(Value): boolean;

    Delphi XE6

    Delphi XE5 (wayback)

    • Android Support;
      needs device with ArmV6 + Neon or ArmV7 for deployment
      introduces conditional define ANDROID
    • Operator overloading for classes (but only for the NextGen compiler {Android/iOS})

    Delphi XE4

    • The following new conditionals are introduced/enabled in XE4:
      AUTOREFCOUNT
      CPUARM
      EXTERNAL_LINKER
      IOS
      NEXTGEN
      UNDERSCOREIMPORTNAME
      WEAKREF
      WEAKINSTREF
      WEAKINTREF

    • Reintroduced support for iOS.

    • New dependency directive for specifying the dependencies of an external library (undocumented until XE8).

    • ARC support in NextGen compilers (including TObject.DisposeOf).
      Note that much of the groundwork for ARC was already in XE3, but much of it was disabled

    • Before the XE4 release, $IF statements could only be terminated with $IFEND, and the $IFDEF, $IFNDEF, $IFOPT directives could only be terminated with $ENDIF.

    At XE4, this changed so that $ENDIF became an accepted terminator for $IF, $IFDEF, $IFNDEF, and $IFOPT.

    Delphi XE3

    • Record helpers for built-in types
    • Removed support for iOS.
    • Atomic intrinsic functions:
      AtomicExchange(), AtomicIncrement(), AtomicCmpExchange(), AtomicDecrement()
    • Introduction of the [ref] attribute.

    Delphi XE2

    • Cross platform support for Mac OSX (32-bit) and iOS;

    • Support for Win64;

    • Modified RTL to support cross platform;

    • Packed Now Forces Byte Alignment of Records (Pre XE2 it did not necessarily do this)

    • Eight new DEFINEs have been added:

      ALIGN_STACK
      CPUX86
      CPUX64
      MACOS (Mac operating system)
      MACOS32
      PC_MAPPED_EXCEPTIONS
      PIC
      WIN64

    • Full unit scope names are now required in your uses clause.

    • {$ExcessPrecision on/off} compiler directive (x64 only)

    • The build-in types differ depending on the target platform (32/64-bit)

      • Extended Data Type Is 10 bytes on Win32, but 8 (!) bytes on Win64

    Delphi XE

    • The {$STRINGCHECKS} compiler directive is ignored in XE;
    • New 16-byte value for the {$ALIGN} directive:
      The acceptable values for the {$ALIGN} directive now include 1, 2, 4, 8, and 16.
    • new {$CODEALIGN} directive, this sets the starting address for a procedure or function.
    • The {$STRONGLINKTYPES ON} directive
    • Support for regular expressions.

    Delphi 2010

    • Enhanced Delphi RTTI (Run Time Type Information).
    • Attributes
    • The as operator can be used to cast an interface reference back to the object from which it was extracted.
    • The is operator can be used to verify whether an interface reference was extracted from a certain class.
    • Normal unsafe casting can be performed on an interface: TObject(SomeInterface).
    • new delayed directive indicates that an external library such as a DLL is not to be loaded at declaration time but is to wait until the first call to the method
    • Class Constructor/Destructor

    Delphi 2009

    • Intrinsic type string now maps to UnicodeString;
    • {$HighCharUnicode on|off} compiler directive
    • Generics;
    • function Default(T): T intrinsic function (Undocumented)
    • Smart pointers;
    • Anonymous methods;
    • Support for nested exceptions and exception tracing;
    • support for pointermath and a new compiler directive: {$PointerMath on|off};
    • Four new compiler warnings:
      • W1057 Implicit string cast from '%s' to '%s',
      • W1058 Implicit string cast with potential data loss from '%s' to '%s',
      • W1059 Explicit string cast from '%s' to '%s',
      • W1060 Explicit string cast with potential data loss from '%s' to '%s';
    • The Exit function can take a parameter specifying a result;
    • resourcestrings as Widestrings;
    • TObject has a extra hidden pointer to TMonitor in addition to its VMT pointer;
    • the deprecated keyword can now have additional text

    Delphi 2007

    • No language changes that I know of;
      Note that Delphi 2007 is a non-breaking release, DCU’s from D2006 will work unchanged in D2007;
    • (The .NET ‘personality’ of 2007 introduced generics)

    Delphi 2006

    • Enhanced records;
    • operator overloading;
    • static methods and properties;
    • FastMM is the default memory manager;
    • strict private/protected visibility keyword;
    • final keyword for virtual methods;
    • {$METHODINFO} directive;

    Delphi 2005

    • for ... in loops,
    • inline keyword
    • Wildcard in uses statement allowed
    • nested types
    • nested constants
    • {$REGION}/{$ENDREGION} directives
    • class helpers (added in Delphi 8 for .net);

    Delphi 7

    • three additional compiler warnings:
    • Unsafe_Type,
    • Unsafe_Code, and
    • Unsafe_Cast. These warnings are disabled by default, but can be enabled
    • new compiler directive {$WARN UNSAFE_CODE ON}
    • Overloads of routines that format and parse numbers, date-time values, and currency using a TFormatSettings structure.

    Delphi 6

    • ‘TCustomVariantType’ provides operator overloading for custom variant types
    • New compiler directives:
      • {$IFDEF MSWINDOWS}
      • {$IFDEF LINUX}
      • {$LIBPREFIX}
      • {$LIBSUFFIX}
      • {$LIBVERSION}
      • ‘{$MESSAGE}’ directive – SO link
      • {$SetPEFlags}
    • Support for {$IF}{$ELSE} compiler directives
    • Compiler hinting directives: experimental, deprecated, library, platform (but without additional text for deprecated)
    • Variant is no longer based on COM but changed to be CLX compatible, COM based variant renamed to OLEVariant
    • Typed constants cannot be assigned to (Override with {$J+})
    • Enumerated types can be assigned an explicit value (cf C++);
    • Interface properties
    • Support for calling varargs external functions (but only for the cdecl calling convention)
    • custom variants

    Delphi 5

    No new language features, but:

    • Support added for Frames

    Delphi 4

    • Dynamic arrays
    • LongWord and Int64; Cardinal is an UINT32 (before it was unsigned 31-bit value)
    • Real takes 8 bytes and is the same as double (previously it was 6 bytes);
      • Override with the new {$REALCOMPATIBILITY ON} compiler directive;
      • REAL48 replaces the old 6-byte real;
    • Support for resourcestrings
    • Method overloading
    • Default parameters
    • {$EXTERNALSYM} and {$NODEFINE} directives
    • implements keyword for properties

    Delphi 3

    • Wordbool, longbool and bytebool store true as -1 instead of 1 (Boolean is unchanged)
    • Components must be installed using packages.
    • Assertions.
    • out parameters.
    • Widestring
    • interface and dispinterface keyword and COM (dispid) support.

    Delphi 2

    • Support for 32-bit;
    • Ansistring replaces shortstring as the default string type
    • Currency
    • Variant (for interop with OLE automation).
    • Threading support and ThreadVar keyword.
    • 4 byte data is 4 byte aligned new packed keyword overrides this behavior;
    • TDateTime starts at 1899/12/30 under D1 it started at 0000/00/00
    • new finalization keyword
    • register and stdcall calling conventions added.
    • packed keyword.
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Before we begin, I would like to convey that I have limited to no
Before I begin, I would like to state that I KNOW the Apple Guidelines
Before I begin, I would like to highlight the structure of what I am
before I start I want to point out that I tagged this question as
before I begin with working with java an jUSB library I would like to
I would like to turn everyone's attention to this question before I begin as
Before I begin, I should probably mention that this sort of thing should probably
I have a large tests suite, that needs to be run before I push
so i've begun google's python class, and have not had that much difficulty with
before i begin, i should mention my actionscript skills are about a 5/10. that

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.