SaveDialog建议的文件名以匹配扩展名过滤器

时间:2018-08-10 14:02:34

标签: delphi filter tsavedialog

当程序显示SaveDialog保存文件时,我可以使用Filter和Filter Index属性将显示的文件限制为某些扩展名。另外,当我设置DefaultExt属性时,随着用户键入文件名,该文件夹中匹配的文件将作为建议显示在下拉框中,并且可以用鼠标选择一个。 例如,如果过滤器设置为“ * .xml”,则只有与该扩展名匹配的文件名才会显示在文件对话框列表中。但是,如果用户键入“ Test”,那么您将获得建议文件的下拉列表,例如:     TestA.doc     TestB.xml     测试123.pdf     TestX.xml (如果文件夹中存在这些文件)

但是我希望建议列表仅包含与过滤器匹配的文件,例如* .xml。那可能吗?问题是用户可能会提出错误的建议,并使用错误的扩展名保存文件。

1 个答案:

答案 0 :(得分:2)

TSaveDialog内部使用Windows的IFileDialog界面。该界面没有提供任何方法来更改“文件名”字段的建议下拉文本框中的文件过滤方式。

您可以:

  • 从头开始实现自己的对话框
  • 使用非免费的DexExpress之类的组件
  • 执行后检查保存对话框的结果,并验证用户选择文件,并在文件无效时向用户显示正确的消息