Search code examples
delphiunicode

Any hints for those that want to upgrade from Delphi 7 (and down) to Delphi 2010?


I am interested to evaluate Delphi 2010. The main issue seems to be the ASCII to Unicode conversion. Any tips or resources about this that you have found useful?


Progress report

At this point, my recommendation for those that want to upgrade would be to check:

http://www.embarcadero.com/images/dm/technical-papers/delphi-in-a-unicode-world-updated.pdf
Is WideString identical to String in Delphi 2009
What is the compiler version for Delphi 2010?
http://chee-yang.blogspot.com/2008/10/delphi-2009-unicode.html

GIF issues:

Note that Gif (by Melander) and Png (by Martijn Saly?) images are now incorporated in Delphi 2010. You will have to use a conditional in order to use the right GIF unit:

USES Windows, SysUtils, Graphics, blabla
{$IFDEF VER150}
  , GIFImage,     {Delphi 7}
{$ELSE}  
  GIFImg          {Delphi 2010}
{$ENDIF}; 

Also, you need to "fix" the PNG provided by Embarcadero: http://talkdelphi.blogspot.com/2009_03_01_archive.html

Other things that you need to know is that you really have to back up your project before opening it in Delphi 2010. Delphi 2010 will change your DFM file even if you don't press the Save button. The form canlose data, and it will not compile in D7.


Upgrade to Delphi XE

I have finally purchased Delphi XE. Delphi XE proposes some new features but, unfortunately, some of them have issues (background compilation, UML modeling, code insight, etc). The IDE is also not as stable and fast as Delphi 7 and the toolbar has real problems (better don't customize the IDE). There is also a nasty bug where the IDE has 100% CPU utilization (see my other posts about all these issues). I hope that in Update 2 and 3 they will fix some of the most stringent issues.

Anyway, I think I upgraded too soon because now Embarcadero announced the 64 bit compiler.

Conclusion:

  • Delphi XE brings LOTS of new features, but obviously you won't be using ALL of them.
  • The stability of the IDE is similar to Delphi 7.
  • It helps you build more up-to-date applications (modern UI open/save dialog, application manifest).
  • Support for Unicode.

Upgrade to Delphi XE7

The upgrade from XE and XE7 was not that huge, as the upgrade from Delphi 7 to XE :)


Upgrade to Delphi Rio

Considering the amount of years since the last update, I could safely say that the difference between XE7 and Rio small - except for those that are interested in cross-platform apps (Mac, Android but not Linux!). For me, the cross-platform support came too late. My app is big now and fully entangled in MsWindows/VCL.

PROS

  • Finally high DPI support.
  • IDE does not crash so often as it used to crash in XE7.
  • VCL themes finally work.
  • Most stable IDE until now
  • Almost full cross-platform support (get Architect version if you need Linux). Personally I use Lazarus for rhe projects where I needed cross-platform.
  • Upgrading the code was super easy.

CONS

  • Some features like dark themes don't work at all!
  • The Insight still problems: new language features (like declaring inline variables) not supported by the IDE (the code will have that wiggled underscore red lines).
  • A super annoying IDE issue is that the compiler will still show the last hints/warnings/errors EVEN after you fixed them. Looks like the log data remains in some kind of cache.

Upgrade to Delphi Sydney

Sydney is quite stable. Generics are better. GetIt is almost usable. Great support for iterators. Love the new VAR that can be declared anywhere in the body of a procedure and the type inference.
If you still own an old Delphi version, I strongly recommend you to upgrade to Sydney.

Upgrade to Delphi Alexandria

Alexandria (the first sub-versions) is not stable. The IDE crashes when I try to install libraries. So I downgraded back to Sydney until v11.3 will be released.


Update
Finally, Emba released a free (aka Community) edition and boy you can see the effects. I am very happy.


Solution

  • We have created a web page specifically for this very issue:

    http://www.embarcadero.com/rad-in-action/migration-upgrade-center

    There, you can find webpages, documents, webinar replays, etc. which all cover the issue of migration.

    The first thing people say is "I have a huge codebase, and migrating to Unicode will take forever" and almost without exception they discover that "forever" really is a much shorter period of time than they originally thought and that the new features of Delphi 2010 make it all worth it.