Delphi 如何在打开的文件对话框中仅显示某些文件扩展名?

Delphi 如何在打开的文件对话框中仅显示某些文件扩展名?,delphi,opendialog,Delphi,Opendialog,当我使用OpenDialog打开文件夹时,如何对其进行过滤,以便用户只能查看某些文件(例如Stringgrid,*.sg),并且具有任何其他扩展名的文件不会出现在对话框窗口中?将OpenDialog.filter属性设置为所需的文件过滤器 可以在对象检查器中执行此操作: 单击过滤器属性,您将看到一个小按钮出现在右边缘,… 单击该按钮,您将看到一个对话框出现 左侧是文件的说明(例如,Excel文件(*.xls))。右侧是要使用的过滤器,如*.xls中所示 也可以在显示对话框之前在代码中进行设

当我使用OpenDialog打开文件夹时,如何对其进行过滤,以便用户只能查看某些文件(例如Stringgrid,*.sg),并且具有任何其他扩展名的文件不会出现在对话框窗口中?

OpenDialog.filter
属性设置为所需的文件过滤器

可以在对象检查器中执行此操作:

  • 单击
    过滤器
    属性,您将看到一个小按钮出现在右边缘,
  • 单击该按钮,您将看到一个对话框出现
左侧是文件的说明(例如,
Excel文件(*.xls)
)。右侧是要使用的过滤器,如
*.xls
中所示

也可以在显示对话框之前在代码中进行设置:

OpenDialog1.Filter := 'Excel files (*.xls)|*.xls';

当然,用您想要使用的任何描述和掩码替换Excel文件。

使用
过滤器
过滤器索引
属性指定要显示的文件扩展名(注意,用户可以手动覆盖过滤器)


OnIncludeItem
事件用于有选择地允许/禁止在对话框中列出单个文件/文件夹。

否,如果文件位于同一文件夹中,则不能执行第二个操作(基于扩展名以外的内容筛选文件)。但正确的解决方案是为每个用户提供自己的文件夹来存储文件,并使用访问控制(文件夹权限)防止用户看到彼此的文件。我删除了你的第二个问题,因为它与原来的问题太不同了。请在另一个帖子中提问你的其他问题。