Delphi 7 - XE5 Differences

[Home]   [Puzzles & Projects]    [Delphi Techniques]   [Math Topics]   [Library]   [Utilities]



Search WWW


As of October, 2016, Embarcadero is offering a free release of Delphi (Delphi 10.1 Berlin Starter Edition ).     There are a few restrictions, but it is a welcome step toward making more programmers aware of the joys of Delphi.  They do say "Offer may be withdrawn at any time", so don't delay if you want to check it out.  Please use the feedback link to let me know if the link stops working.


Support DFF - Shop

 If you shop at Amazon anyway,  consider using this link. We receive a few cents from each purchase.   Thanks.


Support DFF - Donate

 If you benefit from the website,  in terms of knowledge, entertainment value, or something otherwise useful, consider making a donation via PayPal  to help defray the costs.  (No PayPal account necessary to donate via credit card.)  Transaction is secure.


Feedback:  Send an e-mail with your comments about this program (or anything else).

Search only



November 24, 2013:   I recently upgraded from Delphi 7 to Delphi XE5.  Since the DFF audience appears to be approximately evenly split between "D7 and earlier" and "after D7" users, I'll try to support for both early and later versions where possible.  Regardless of whether you need multiple version support, there are differences which will require source code changes after the upgrade. 


Differences & Considerations:


This section will document differences as I find them.  It is not always documented exactly which version of Delphi first implemented a feature or change, but most language syntax changes seem to have appeared shortly after D7.  For my conditional compilation tests, I'm assuming the changes apply after D7  (Compiler version >15) unless I know otherwise.  If you discover an item in the list where that does not apply, please use the feedback link to let me know.


  • Format Settings: Beginning with XE  (Compiler version 22), the date/time formatting variables previously embedded in the SysUtils unit now exist within a FormatSettings record within SysUtils.  The record is TFormatSettings type and contains date, time, and number formatting information which may change depending where you live.  So if your program previously referenced "ThousandSeparator" for example, it must now reference FormatSettings.ThousandSeparator.  Check library unit UBigIntsV4 for an example.

  • UInt64 (Unsigned 64 bit integer type):  This is a language enhancement which allows true 64 bit integers (up to 264 -1) to be manipulated.  Int64 integers reserve 1 bit for the sign so the maximum value is 263 -1.  This became a consideration when creating a Random64 function suitable for pre and post D7 compilers.    Check the library unit Mathslib source code for an example. 


Issues with multiple Delphi compiler versions on the same system:


I currently have a few problems running D7 after installing XE5.


  • If a form defined in XE is then compiled with D7, you may encounter "Undefined property errors" for new properties.  Assuming that these new properties have not been referenced in the program, they may be safely ignored.  I have options set to generate text version of forms by default which was necessary for transferring to the free Lazarus Delphi emulator.  It may be a requirement for XE forms also.  

  • If the "Save Desktop" option is set XE,  D7 hangs when trying to start.  Cause unknown, but removing or renaming the ".dsk" file generated by XE  allows D7 to start.  Still being investigated.

  • Similarly, D7 produces a message at startup concerning the "Just in Time" debugger file being invalid.  Replying "Yes" to then "change option" question  causes an "unable to change" error and a hang.  Replying "No" allows D7 to start OK but without debugging facilities.  Still being investigated.    




Created: November 24, 2013

Modified: February 18, 2016

  [Feedback]   [Newsletters (subscribe/view)] [About me]
Copyright 2000-2016, Gary Darby    All rights reserved.