Placing TTMSFMXMemo on a C++ Builder FMX form gives compile error

Using the Memo component in C++Builder 10.4 does not work. To reproduce, do the following:

  1. create a new blank "multi device" C++ application
  2. drop a TTMSFMXMemo component onto the blank form
  3. compile/build the project

The build fails with the following error message:

[bcc32c Error] FMX.TMSMemo.hpp(225): no type named 'TTMSFMXObjectExcludePropertyListArray' in namespace 'Fmx::Tmstypes'

The compile settings used are default (CLang 32 bit compiler).

Any ideas?

Seems like a Header file bug - the Type is not correctly exported to *.hpp - it is defined in FMX.TMSTypes.pas, but missing in FMX.TMSTypes.hpp (seems like there are others missing, too).

After a bit more digging, it turned out as an update/installer bug - the RAD Studio package include folders listed two entries:

  • <TMSInstalldir>
  • <TMSInstallDir>\Delphi104Sydney\Release

The first one had a FMX.TMSTypes.hpp without the correct type, the second had the correct one. Due to the include order, the first one got loaded, not the second one, resulting in the error.

Seems like a leftover from a previous (older) installation...


Can you remove the folder and then try to reinstall? The path could indeed be an older installation. The installer doesn't clean up files that are generated by the compiler because the installer is not aware of these files.