Delphi 7 - XE5 Differences

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

 

Search

 

Search DelphiForFun.org only

Support DFF

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

In Association with Amazon.com

 

Support DFF

 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.

 

 

Contact

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

 

Search DelphiForFun.org 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.

 

bullet

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.
 

bullet

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.

 

bullet

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.  

bullet

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.

bullet

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: November 24, 2013

 

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