Delphi FMX OpenDialog缺少选项列表

Delphi FMX OpenDialog缺少选项列表,delphi,Delphi,我在表单中添加了TopEndDialog组件,并正在编写菜单方法来操作它。我从一个VCl项目中复制了代码,包括行openDialog1.Options:=[ofradonly] 编译器拒绝它,因为不识别ofReadOnly(和其他选项)。TopenOptions类型包含在VCL.Dialogs中,但似乎没有出现在FMX版本中 我目前使用的是Delphi starter版本,该版本不包含FMX.dialogs.pas文件文本,因此我无法将选项添加到装置中。将VCL.dialogs文件包含在Uses

我在表单中添加了TopEndDialog组件,并正在编写菜单方法来操作它。我从一个VCl项目中复制了代码,包括行
openDialog1.Options:=[ofradonly]

编译器拒绝它,因为不识别ofReadOnly(和其他选项)。TopenOptions类型包含在VCL.Dialogs中,但似乎没有出现在FMX版本中


我目前使用的是Delphi starter版本,该版本不包含FMX.dialogs.pas文件文本,因此我无法将选项添加到装置中。将VCL.dialogs文件包含在Uses部分可以解决这个问题吗?我听说在同一个程序中混合VCL和FMX单元不是一个好主意。

如果您阅读Embarcadero的文档,您将看到该属性使用与该属性相同的类型,因此两个对话框都有相同的可用选项

代码未编译的原因是已在启用指令的情况下声明枚举(请参阅)。您需要在作用域枚举值前面加上其包含的枚举类型名称,例如

uses
  ..., System.UITypes;

OpenDialog1.Options := [TOpenOption.ofReadOnly];

为什么您希望混合使用FMX和VCL。这毫无意义。你为什么不做一件显而易见的事情并阅读文档呢?使用启用SCOPENENUMS编译器指令声明FMX枚举的事实来增强这一点。@DavidHeffernan稍微放松一点!我是新手,正在阅读文档。当我不理解一些东西时,我会问一些熟悉的人,比如这个网站。你的代码行会产生一个编译器错误-[dcc32 error]FmxMain.pas(343):E2010不兼容的类型:“TOpenOptions”和“Set”。我无法重现这个错误。我在XE2和西雅图进行了测试(我没有安装Berlin+)。我展示的代码在两个版本中都编译得很好。你使用的是什么版本的Delphi?不,它可以工作,我不能在topenoption和topenoption之间阅读。谢谢你帮助一个新手。