This is a slightly unusual blog post, because it is basically an answer...

As I blogged last week, migrating Delphi applications written with old versions of Delphi (say Delphi 6 or Delphi 7) is at times challenging. Unicode migration is often at stake, and so are other RTL and compiler changes. In this blog post, let's focus on components that are blocking migration. These can be:

  • Components that used to be part of the product (like Bold or the Socket Client/Server components)
  • Components that were made by third-parties but shipping with the product (like reporting engines or older versions of Indy)
  • Third-party components available freely, or as paid components, with or without source code

The migration can be difficult because the component or library is not available any more, doesn't recompile (in case you have the sources), or has many changes making migration difficult. With this scenario in mind, my question is simple:

Which components have caused you most trouble when you migrated Delphi 6/7 applications
or are still blocking the migration of your application?