Alex Rivera | Logout

Delphi XE2: Is there a predefined conditional to identify VCL and FireMonkey?

Asked 2011-10-11T01:32:25.673
15

In Delphi XE2, we have use

{$ifdef Win32}
{$ifdef Win64}

to identify which platform we are in.

Is there any predefined conditional that may identify VCL and FMX?

Edit
Report

2 Answers

13

Although not documented you can have VCL and Firemonkey in the same application.

There is no compiler define.

If you're building something that needs to be both VCL and Firemonkey I would recommend separation of the units.

A possible way:

  • MyLibrary.X.pas - Common Code that both VCL, and Firemonkey would uses.
  • MyLibrary.Vcl.X.Pas - Vcl Specific Code
  • MyLibrary.Fmx.X.Pas - Fmx Specific Code

Mixing UI code from two different frameworks in the same unit is not a good idea. It will link in the other library when it's not needed.

answered 2011-10-11T02:36:55.103
4

There is no compiler directive because technically there is no such thing as a firemonkey application or a vcl application. Only applications which make use of these technologies. An application can use fxm or vcl or both or neither (eg. a console app). This is a bit like asking if it is an SQL application. You can of course programatically check the ancestry of individual forms to see which framework they inherit from. Again, inside a unit that has no associated form, this has no meaning.

answered 2011-10-25T08:38:51.827

Your Answer