1

我在 Delphi XE7 中使用了 TOpenDialog 组件,因为我想选择一个或多个文件。但是,在我选择它们并单击“确定”后,所选文件已按字母顺序(从 A 到 Z)存储在Files属性中,这是我不想要的。我在TOpenDialog控件和TStrings类型中都没有看到任何开关或选项。

我怎样才能让这个组件完全按照我想要的顺序存储选定的文件?

4

2 回答 2

3

系统对话框不跟踪选择项目的顺序。您无法让系统对话框告诉您该信息。如果你真的需要,那么我看到两个选项:

  1. 编写您自己的对话框来跟踪选择顺序。
  2. 让用户在文件选择对话框之外指定顺序。
于 2016-05-12T07:51:34.270 回答
3

来自操作系统的底层对话框不会跟踪该信息(或者如果有,它不会以任何方式公开它),并且 Delphi 提供的包装类不会为您合成它。

您可以处理事件OnSelectionChange推断选择顺序。首先创建您自己的有序列表来保存选定的文件。触发事件时,检查对话框的Files属性。从您的内部列表中删除任何不存在于Files. 对于Files您还没有的任何项目,请将它们添加到列表的顶部。

于 2016-05-12T15:11:29.270 回答