If you shop at Amazon anyway, consider using
this link. We receive a few cents from each purchase.
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.
e-mail with your comments about this program (or anything else).
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
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
November 24, 2013