【发布时间】:2014-10-08 11:49:35
【问题描述】:
我正在使用 Delphi XE6 编写一个移动应用程序,并在其存储库中的一个示例中发现,它能够为不同的设备提供主视图和备用 fmx 视图。该示例看起来好像会根据编译器指令选择正确的形式,但我似乎无法让它工作。界面看起来很棒,因为我可以拥有包含基本内容的主表单,然后根据屏幕大小和功能实现继承的更改。在此视图中有图标,例如添加视图和删除视图。选择添加视图时,所有Android和IOS设备的对话框允许选择,然后选择它显示时,它显示了具有设备背景图标的附加视图,例如iPhone5。然后该单元显示多个引用,如下所示:
implementation
uses Math;
{$R *.fmx}
{$R *.iPhone5.fmx IOS}
{$R *.Samsung_Galaxy_S4.fmx ANDROID}
然后,备用视图显示从主表单继承的属性,允许您更改值并包含与平台匹配的特定样式。如果这行得通,它将节省很多精力。我目前在使用 TStyleBook 时遇到问题,因为 iOSBlack 样式与 Android 不兼容并在设备上引发错误。使用 AndroidDark 样式时,iOS 设备上存在类似问题。有人体验过这种多视图模式吗?
谢谢!
【问题讨论】:
-
您展示的示例在任何平台或版本的 Delphi 上都是无效的(根本无法编译)。您能否提供指向您描述的存储库中示例的特定链接?
-
我现在在我的系统上查看
AddThumbAndMainFormU.pas,而implementation在声明常量并开始实现TForm594的方法之前只包含uses System.Math; {$R *.fmx}。第二个和第三个{$R}s 不存在。 (显示的语法不适用于{$R},这就是我发表第一条评论的原因。正确的语法是{$R resourcefile resourcescript},*指的是单位名称。也没有AddThumbAndCaptionMainFormU.iPhone.fmx或AddThumbAndCaptionMainFormU.Samsung_Galaxy_S4.fmx文件, 这会失败。它们是你的文件吗? -
我列出了错误的 pas 文件,但你发现了。我正在使用 TRUNK 而不是 radstudiodemos 的 XE6 分支,也许您正在使用该分支。
{$R *.fmx}{$R *.LgXhdpiPh.fmx ANDROID}在AddThumbAndCaptionMainFormU.pas中,我的 listview 文件夹中有AddThumbAndCaptionMainFormU.LgXhdpiPh.fmx文件。它们在存储库中。也许这是XE7最终实现的编辑模式。 -
多设备视图不是 XE6 功能。考虑到多视图更改已由 Embarcadero 工程师 Spencer Kimball 签入到演示 SVN,可以肯定地说这是 XE7 中的新功能。
标签: android ios delphi firemonkey delphi-xe6