Dismiss Notice



3 MONTHS VIP - 10$; 6 MONTHS VIP - 20$; 1 YEAR VIP - 30$; 2 YEARS VIP - 50$; GOLD USER FOR LIFE VIP - 150$


Dismiss Notice
The registration is approved by the Administrator. It takes about 1 day to approve your registration
Dismiss Notice
For open hidden message no need write thanks, thank etc. Enough is click to like button on right side of thread.

News/Info Delphi language features and versions

Discussion in 'News, Freeware, Open Source and Discussions' started by N0body, Nov 8, 2018.

  1. N0body

    N0bodyN0body is a Verified Member DelphiFan Administrator Staff Member DF Staff

    list of Delphi language features and version in which they were introduced/deprecated

    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

    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:

    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:

    MACOS (Mac operating system)

    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).
    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
    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;
    class helpers;
    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

    Delphi 7

    three additional compiler warnings:
    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][68] provides operator overloading for custom variant types
    New compiler directives:
    {$MESSAGE 'message'}
    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 false as -1 instead of 1 (Boolean is unchanged)
    Components must be installed using packages.
    out parameters.
    interface and dispinterface keyword and COM (dispid) support.

    Delphi 2

    Support for 32-bit;
    Ansistring replaces shortstring as the default string type
    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.
    pedro_nuke likes this.

Share This Page

Our website, law, laws, copyright and aims to be respectful of individual rights. Our site, as defined in the law of 5651 serves as a provider of space. According to the law, contrary to the law of site management has no obligation to monitor content. Therefore, our site has adopted the principle of fit and remove. Works are subject to copyright laws and is shared in a manner that violated their legal rights, or professional associations, rights holders who, adsdelphi@gmail.com I can reach us at e-mail address. Complaints considered to be infringing on the examination of the content will be removed from our site.
Donate Help To Us and Be VIP
6 MONTHS VIP - 20$; 1 YEAR VIP - 30$; 2 YEARS VIP - 50$; GOLD USER FOR LIFE VIP - 150$
Social Block