我有一个VCL应用程序和非常孤立的VCL代码。我想在Mac OSX支持中包含Fire Monkey表单。
我计划使用大量的IFDEF来确定我应该使用VCL构建Windows还是使用FireMonkey构建Mac OSX。
不幸的是,如果应用程序是VCL应用程序,则无法从项目管理器添加MacOS平台。
有没有办法以某种方式破解这个?也许手动调整.dpr和.dproj文件?
答案 0 :(得分:4)
反过来做什么呢?
对于1表单项目来说,这并不难,然后添加当前VCL dpr中的所有现有内容。
这实际上可能会让你能够弄清楚VCL和FireMonkey的.dpr和.dproj是如何不同的(我尝试了一次,但是短期内做的太多了,所以我把它搁置了以后研究)。
注意:的
将IFDEF放入DPR文件时要非常小心。 Delphi IDE拥有DPR文件,并将删除IFDEFS,例如,当您添加新表单或更改某些项目属性时。
答案 1 :(得分:3)
您是否尝试过手动编辑dproj文件以在<Platforms>
标记中添加OSX32?
<Platforms>
<Platform value="Win64">True</Platform>
<Platform value="OSX32">True</Platform>
<Platform value="Win32">True</Platform>
</Platforms>
您可能已经意识到这一点,但如果您不是,那么Simon Stuart的这个MonkeyMixer插件可以帮助您将FMX表单添加到您的项目中。
请注意,我无法真正测试Mac中的任何内容,到目前为止我仍然是100%的Windows ...
答案 2 :(得分:1)
将VCL代码与其他代码隔离是一个非常好的迹象。
n-tier体系结构确实有意义,而IMHO完整的RAD方法适用于原型设计,但在创建可维护的应用程序时有一些严重的缺点,还有其他功能。
使用Delphi XE2的标准方法是仅使用FireMonkey表单和UI。因此,交叉编译将变得容易。就维护而言,这确实很有意义:一旦设置了FireMonkey代码和表单,就可以通过重新编译将它们部署在多个平台上。不要忘记Linux可能会在不久的将来成为目标(DXScene已经准备好Linux和Android)。使用表单转换器可以帮助您使用FireMonkey而不是VCL来获取代码。
如果您只需要一些适用于Mac OS X的简单表格,并期望更复杂的Windows应用程序(这可能是一个想法,取决于营销目标),您可以创建纯粹的FireMonkey“轻量级”应用程序。但我不建议使用很多条件定义。使用适当的FireMonkey平台创建一个多样化的项目。然后在VCL项目和FireMonkey项目中共享所有非VCL单元。您不需要对此模式进行条件定义。