Converting VCL code to FMX

Even though there are a few tools for porting a project from the VCL (Visual Component Library) to FMX (FireMonkey) the process is not easy especially because not all VCL components have direct FMX equivalents. Some components require substitution, and some functionality must be reimplemented. The problem deepens with 3rd party VCL components.

Tools for semi-automated conversion

MidaConverter

MidaConverter is a non-freeware tool for converting VCL forms and components into FMX equivalents.

Basic features

  • Direct replacements: E.g., `TPageControl` → `TTabControl`.
  • Property mapping: E.g., `TLabel.Caption` → `TLabel.Text`.

It can also convert third-party components like TMS TAdvGlowButton and TAdvSmoothButton

Compared with the other freeware tools it definitively seems better. It goes the extra mile to do a better conversion as it offers:

StyleBook Integration

  • VCL components like `TLabel` store style information (font, color) individually.
  • FMX consolidates styles into a `StyleBook`.
  • Mida automates the transfer of VCL style data into FMX `StyleBook`, eliminating the need for manual adjustments.

LiveBindings Support

FMX relies on LiveBindings for database interaction instead of data-aware components like `TDBEdit`.

Mida generates LiveBindings links automatically, saving time for applications with extensive database components.

Mida Pack Visual Components

FMX lacks support for button images (e.g., `TBitBtn`).

Mida provides custom FMX components (TImageButton, TImageSpeedButton) to replicate the missing VCL components.

The price

There are three or four versions of the product: Basic (?€), Pro (120€ +VAT), Studio (240€ +VAT), Studio Plus (400€ +VAT) but it is not very clear which does what.

If you try to place an order you get a “Product does not exist!” error.

Before purchasing

The website seems deprecated/abandoned and it was not even updated to https.

A trial version cannot be downloaded for testing (which is a big no-go). One the Delphi Praxis forum customers complained that the product does not work and the customer support is totally unresponsive.

ADUG VCL to FMX Converter

The ADUG VCLtoFMXConv is another open-source utility. The tool is quite rudimentary. It can do the following:

  • Convert DFM forms to FMX forms
  • Adjust event handlers.
  • Generate logs for components that require manual intervention.

It compiles on Delphi 11.3 but only after some modifications. The code is 9 years old.

VCL2FMX

It is a fork of Innova. It is 3 years newer than Innova and has more features.

It seems to do a (bit) better job than the previous one. The program is in Spanish but you will figure it out since there are not so many buttons (abrir means open 😊):

AI

Since we are in 2025, a new solution came up: AI bots. I tested two of them with mixed results. Let’s see the conclusions.

Conclusions

Microsoft’s Copilot

Copilot did a totally crappy job. The resulted file was almost 100% identical with the original on. It failed to do even the most basic conversions (Left/Top).

Left – original form. Right – after conversion with Copilot.

ChatGPT

ChatGPT did a decent conversion but lost many of properties like Anchors or even Width. On the other hand, it did a better job by correctly replacing TPageControl (VCL) with TTabControl (FMX).

Innova & Fmx2VCL

They did similar job. In some cases Vcl2FMX (right) was a bit overzealous and replaced the Left/Top properties even if not necessary. But so did Innova in other cases. So, I think they are similar, but Vcl2FMX has a more polished GUI.

 

My try

Since the programs were better than AI, I decided to bring the Innova converter up to date. See my git repository: https://github.com/GabrielOnDelphi/Light_VCL2FMX

This is the major update! It has:

  • True unicode support!
  • Fixed bugs
  • Smaller code

Leave a Comment

Scroll to Top