我在表单中添加了一个TOPenDialog组件,并编写了菜单方法来操作它。我从VCl项目中复制了代码,包括行openDialog1.Options := [ofReadOnly];
。
编译器拒绝它,因为无法识别.ReadOnly(和其他选项)。 TopenOptions类型包含在VCL.Dialogs中,但似乎没有出现在FMX版本中。
我目前正在使用不包含FMX.dialogs.pas文件文本的Delphi入门版本,因此我无法将选项添加到设备中。在使用部分包括VCL.dialogs文件修复此问题?我听说在同一个程序中将VCL和FMX单元混合在一起并不是一个好主意。
答案 0 :(得分:2)
如果你阅读了Embarcadero的文档,你会发现FMX.Dialogs.TOpenDialog.Options
属性使用System.UITypes.TOpenOptions
属性使用的VCL.Dialogs.TOpenDialog.Options
类型,因此两个对话框都有相同的选项可用。
您的代码未编译的原因是因为TOpenOption
枚举已声明并启用了{SCOPEDENUMS ON}
指令(请参阅Scoped Enumerations)。您需要使用包含枚举类型名称的带范围的枚举值作为前缀,例如
uses
..., System.UITypes;
OpenDialog1.Options := [TOpenOption.ofReadOnly];