为什么我在使用Firemonkey Metropolis UI应用程序时无法设置其他平台?

时间:2014-04-18 16:15:37

标签: delphi firemonkey delphi-xe5

测试平台目标的不同选项我在delphi xe5帮助中找到了这些信息:

  

注意:您不能将OS X设置为Metropolis UI应用程序的目标平台。

FireMonkey Metropolis UI Application

我已经搜索了更多的答案,但找不到它不被允许的真正原因。

我想在Windows和Android平板电脑上看到相同的应用程序。 (我知道我可以使用&#34;常规&#34; FMX应用程序并以其他方式制作,但我不知道有什么限制,因为我认为FMX应该总是跨平台,只考虑普通的FMX应用程序)< / p> 编辑:我当前项目的最终目标是创建一个具有Win Metro外观的应用程序,但不兼容WinRT,并在Win32(XP / 7/8)和Android平板电脑上使用此应用程序。我不想遵循任何特定于平台的规则,只有最接近可能的工作行为,就像Delphi生成的win32应用程序一样。

3 个答案:

答案 0 :(得分:2)

不同的平台使用不同的后端框架并具有不同的UI要求。这就是为什么你不能将OSX添加到Metro项目(OSX不是Metro平台),就像你不能将OSX添加到移动项目(OSX不是移动平台)或移动平台(iOS / Android)到桌面项目(它们不是桌面平台)。不要尝试创建支持Delphi支持的每个UI平台的单个应用程序项目(项目是另一回事 - 您可以创建多平台包)。您将需要创建单独的项目 - 用于Metro UI的Metro项目,用于桌面UI的桌面项目以及用于移动UI的移动项目。您可以在它们之间共享源文件,但不应在它们之间共享UI表单。改为使用适合平台的UI。

答案 1 :(得分:1)

Metropolis UI是一个使用IPC和WinRT进程的混合系统。 WinRT过程用于显示磁贴以及WinRT域中需要的任何其他内容。这只能存在于运行WinRT的系统上。这意味着Windows 8而不是Mac或移动平台。

确实,您可以在Windows 7上构建和运行Metropolis UI应用程序,因此很明显它们可以在没有WinRT部分的情况下存在。但Metropolis用户界面的全部目的是能够从WinRT子系统推出假的WinRT类似Delphi应用程序。所以他们在其他任何地方都没有意义。我没有看到任何理由为什么Embarcadero会投入精力使Metropolis UI应用程序在没有WinRT的任何地方工作。


您可以使用FMX Metropolis UI项目的样式部分。那将为您提供您所追求的视觉效果。它不是一个Metropolis UI项目,但看起来如你所愿。因此,您制作了一个针对OSX的标准FMX桌面应用程序。然后应用您选择的Metropolis风格。这当然适用于桌面应用程序,我认为没有理由不适用于Android平板电脑应用程序。

答案 2 :(得分:0)

只需在文本编辑器中打开样式(* .style)文件即可。你会看到一些像:

PlatformTarget = '[MSWINDOWS][MODERN][DEFINEFONTSTYLES]' 

然后只需添加您需要的平台。