As you probably know, VCL is incompatible with FireMonkey. What does it mean? As Embarcadero explains in the DocWiki:
FireMonkey (FMX) and the Visual Component Library (VCL) are not compatible and should not be used together in the same module. That is, a module should be exclusively one or the other, either FireMonkey or VCL. The incompatibility is caused by framework differences between FireMonkey (FMX) and VCL.
However, there is still something that can be done to use FireMonkey functionalities in a VCL application.
It's very probable that a VCL application could gain benefits by using some components or functionalities present only in the FireMonkey framework. So what could be the solution? One solution is to create a Windows DLL that contains all the FireMonkey code and exposes a set of raw functions to access them. Then, the VCL application can load the DLL and call the exposed functions. Let's see this in action.
This recipe requires...