我在 Delphi XE7 中使用了 TOpenDialog 组件,因为我想选择一个或多个文件。但是,在我选择它们并单击“确定”后,所选文件已按字母顺序(从 A 到 Z)存储在Files属性中,这是我不想要的。我在TOpenDialog控件和TStrings类型中都没有看到任何开关或选项。
我怎样才能让这个组件完全按照我想要的顺序存储选定的文件?
我在 Delphi XE7 中使用了 TOpenDialog 组件,因为我想选择一个或多个文件。但是,在我选择它们并单击“确定”后,所选文件已按字母顺序(从 A 到 Z)存储在Files属性中,这是我不想要的。我在TOpenDialog控件和TStrings类型中都没有看到任何开关或选项。
我怎样才能让这个组件完全按照我想要的顺序存储选定的文件?
系统对话框不跟踪选择项目的顺序。您无法让系统对话框告诉您该信息。如果你真的需要,那么我看到两个选项:
来自操作系统的底层对话框不会跟踪该信息(或者如果有,它不会以任何方式公开它),并且 Delphi 提供的包装类不会为您合成它。
您可以处理事件OnSelectionChange
以推断选择顺序。首先创建您自己的有序列表来保存选定的文件。触发事件时,检查对话框的Files
属性。从您的内部列表中删除任何不存在于Files
. 对于Files
您还没有的任何项目,请将它们添加到列表的顶部。