Delphi .dproj files: FrameworkType and FormType (via: Embarcadero Discussion Forums)
Posted by jpluimers on 2013/11/28
One more of the “Missed Schedule” series, this time it was originally scheduled for October 1st, (2013 that is).
Delphi XE2 and up introduced the FrameworkType and FormType elements in the .dproj files to distinguish between VCL and different flavours of FireMonkey.
Actually, Delphi XE1 already had the value
NoneforFrameworkType, so some cross-platform changes trickled into the Delphi builds early.
Though the IDE writes these values to the .dproj files, you [Wayback/Archive] cannot change their values from within the Delphi IDE, not even through the Open Tools API.
There is no documentation about the values in the .dproj files. the only places I could find were these about FrameworkType in combination with [Wayback/Archive] Actions:
- [Wayback/Archive] Changes in Implementation of VCL Actions – RAD Studio.
- [Wayback/Archive] Framework-Independent Action Features Are Implemented in RTL – RAD Studio.
- [Wayback/Archive] Support for Managing Actions in IDE – RAD Studio.
- [Wayback/Archive] System.Actions.CreateAction – RAD Studio API Documentation.
- [Wayback/Archive] System.Actions.EnumRegisteredActionsProc – RAD Studio API Documentation.
that basically tell this:
FrameworkTypeDefines whether an action is created for the VCL or FireMonkey (FMX) framework. The default of this parameter is
VCL(for compatibility with legacy applications).This parameter is used to avoid situations when VCL actions are used in FireMonkey applications and inversely; this can lead to a serious increase in an application’s size and to execution errors, for example, calling of Windows API under MacOS.
But it is incomplete, and there is no documentation about FormType.
The valid values for FormType and FrameworkType are as follows [Wayback/Archive] :
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| FormType values: | |
| <FormType>dfm</FormType> | |
| <FormType>fmx</FormType> | |
| <FormType>lfm</FormType> | |
| FrameworkType values: | |
| <FrameworkType>DotNet</FrameworkType> | |
| <FrameworkType>FMI</FrameworkType> | |
| <FrameworkType>FMX</FrameworkType> | |
| <FrameworkType>None</FrameworkType> | |
| <FrameworkType>UCL</FrameworkType> | |
| <FrameworkType>VCL</FrameworkType> |
FormType values
Value FormType values are these:
dfm |
VCL form (equivalent to an empty string, or no element at all) |
fmx |
Firemonkey form (except for Delphi XE2 where this denotes a non-mobile Firemonkey form) |
lfm |
Delphi XE2 Firemonkey mobile form (for the iOS support through FreePascal) |
FrameworkType values
Valid FrameworkType values are defined in the ToolsAPI.pas unit of the ToolsAPI:
sFrameworkTypeDotNet = 'DotNet'; |
.NET application | (this value is not used anywhere in [Wayback/Archive] http://sourceforge.net/projects/radstudiodemos/) |
sFrameworkTypeFMI = 'FMI'; |
Delphi XE2 Firemonkey mobile application | (for the iOS support through FreePascal) |
sFrameworkTypeFMX = 'FMX'; |
Firemonkey application | (except for Delphi XE2 where this denotes a non-mobile Firemonkey application) |
sFrameworkTypeNone = 'None'; |
VCL application | (for backward compatibility; equivalent to no FrameworkType element at all) |
UCL |
Firemonkey 3D application | (this is an error value as it is not in ToolsAPI.pas, but it is in the RadStudioDemos) |
sFrameworkTypeVCL = 'VCL'; |
VCL application |
UCLis an error (it is an invalid value), but it is present in these demos:
RadStudioDemos\branches\RadStudio_XE2\FireMonkey\helloworld3d\helloworld3d.dproj
RadStudioDemos\branches\RadStudio_XE2\FireMonkey\LowLevelDemo3D\LowLevel3DDemo.dproj
RadStudioDemos\branches\RadStudio_XE3\FireMonkey\helloworld3d\helloworld3d.dproj
RadStudioDemos\branches\RadStudio_XE3_Update\FireMonkey\helloworld3d\helloworld3d.dprojand fixed to
FMXas of Delphi XE4.
FMI
The only posting I could find about FMI was the one below.
To make sure the via Embarcadero Discussion Forums: Convert FMX to FMI …. does not get expired on the forums server (they have a finite retention there which can be quite short for certain newsgroups):
I have automated this in FinalBuilder with these steps [Wayback/Archive] Embarcadero Discussion Forums: Convert FMX to FMI …. · GitHub:
Copy the whole project folder
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
1) Replace FMX. with FMX_ in Demo.dpr file 2) Replace <FrameworkType>FMX</FrameworkType> with <FrameworkType>FMI</FrameworkType> in Demo.dproj 3) Replace <FormType>fmx</FormType> with <FormType>lfm</FormType> in Demo.dproj 4) Rename Formfile UDemo.fmx to UDemo.lfm 5) Replace FMX. with FMX_ in UDemo.pas 6) Replace {$R *.fmx} with {$R *.lfm} in UDemo.pas 7) Run Dos command dpr2xcode on Demo.dpr to create XCode compatible project files. This should be sufficient to create a iOS compatible project from a HD project.
--jeroen
via: Embarcadero Discussion Forums: Convert FMX to FMI ….
Rate this:
Share this:
- Click to share on Mastodon (Opens in new window) Mastodon
- Click to share on Bluesky (Opens in new window) Bluesky
- Share on Tumblr
- Click to share on Reddit (Opens in new window) Reddit
- Click to share on Threads (Opens in new window) Threads
- Tweet
- Click to share on Telegram (Opens in new window) Telegram
- Click to share on Nextdoor (Opens in new window) Nextdoor
- Click to share on WhatsApp (Opens in new window) WhatsApp
- Click to print (Opens in new window) Print
- Click to email a link to a friend (Opens in new window) Email
Related
This entry was posted on 2013/11/28 at 10:30 and is filed under Delphi, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Development, Missed Schedule, SocialMedia, Software Development, WordPress. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.
This site uses Akismet to reduce spam. Learn how your comment data is processed.






Leave a comment