Issues for those upgrading from Delphi XE to XE6:

Variants.EmptyParam issue:

If you use COM, in addition to this not being cross-platform technology, if your code passes Variant.EmptyParam (as an OLEVariant) in code XE or earlier, you will need to modify your code as EmptyParam as of XE2 is a function not a OLEVariant variable you can pass as a Var in a procedure or function.


To solve, this, for each var parameter, you must explicitly declare a variable as an OLEVariant, then use that variable in the procedure or function after you have set it’s value to Variants.EmptyParam.

for example:

procedure doSomeCOM;

var docfilename, docpassword:Olevariant; docs: Documents; doc:Document;


docfilename := ‘mydoc.doc’;

docpassword := Variants.EmptyParam;

Docs := WordApp.Documents;
Doc := Docs.Item(Index);

Doc.someCOMFunctionTakingOLEVariants(docfilename, docpassword);


NativeInt instead of Integer in some procedures and functions;

This will require changing variables for some functions such as Application.OnHel from LongInt to NativeInt;

Deprecated and removed Delphi language:

sysutils.shortdateformat no longer compiles, you need to create a variable of TFormatSettings, then you can access the global shortdateformat

More upgrade issues:

You will need at least 30GB free hard drive space on your C: drive to actually do the install!

BDE on 64 bit Windows:

See my earlier blogs on running this but assuming you have it running successfully, if you had BDE ticked in the Delphi XE6 install wizard then you may find you need to go into regedit and manually ensure that the path to the BDE library is correct. under HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Borland\BLW32\

You will need to download and install the latest versions of other code sets such as:

Jedi JCL – 17th April 2014 version installed without issue

Jedi JVCL – I couldn’t get this one to load the jvclstdcontrols due to an error in the entry point – keep an eye out for latest version

IDE Fix pack – you need v5.6 for XE6 but seems there is no update of the MIDAS speed fix – so I disabled the older version I had as it caused syntax error.

Quickreports – at least their XE to XE6 upgrade is free BUT seems now you must explicitly set the default printer by adding qrepname.PrinterSettings.PrinterIndex := -1;

Infopower Studio – but now there is also a  Firemonkey component set – but not for the 1st Class VCL components at this stage at least.

Unidac database components from Devart – if you don’t want to try the task of migrating your code to Firedac components

TeeChart Pro – Delphi XE 6 does come with standard and “Lite” TeeChart components sets but if you need pro then you need to upgrade.