This is more elaborate English version of a short Dutch message I recently sent to explain the differences between VCL and FMX:
Do not regard FMX as a replacement for VCL: they are different kinds of frameworks.
VCL is a wrapper around Windows Controls. In itself, it has not much functionality: it exposes the underlying Windows functionality. The exception are data aware controls that provide basic functionality for writing data aware applications. There is a huge 3rd party market for extending VCL support, for instance providing extra Windows functionality, enriching data aware behaviour (look at all those fancy data aware grids), and many more.
FMX is the FireMonkey X-platform framework. Major functionalities are vector based 2D, 3D drawing and controls, and support for styles and composition.
When introducing FMX in Delphi XE2, Embarcadero also introduced a new way of data binding that is shared with FMX and VCL. FMX extends this a bit to some basic data aware controls.
Gone are most of the platform specific features like drag & drop, full blown Windows Shell ListViews, etc. There are some controls that manifests themselves differently on each supported platform (like Pickers), but most of that is currently left to the 3rd party FMX component market.
So if you want FMX to replace VCL, then be prepared for quite some shopping in the 3rd party market.
CLX tried to be a full blown cross platform VCL replacement, but that didn’t work very well.
TComboBoxStyleHook. – David Heffernan Sep 9 at 13:13Business Layergives me aTStringswith theObjectsfilled (it is pre-Delphi-2009, so no generics yet). That’s why I can get out theTextsou easy (: First I need to finish about a week of .NET work though. – Jeroen Wiert Pluimers Sep 10 at 16:03TExtComboBoxand its own VCL styles feature. – Warren P Sep 10 at 20:45Objectinstance references are already in theTStrings, I wrote a small function to return a new temporaryTStringsthat has the string values with the captions I needed and keep theObjectreferences. Since it has the same item ordering, and sameObjectreferences I don’t need any mapping at all. Just need to make sure I free the newTStringsat the right moment. – Jeroen Wiert Pluimers Sep 10 at 21:24