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

标签 delphi filter tsavedialog

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

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

最佳答案

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

你可以:

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

关于delphi - SaveDialog 建议文件名以匹配扩展名过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51788236/

相关文章:

delphi - 无法转换作为接口(interface)的 TList<T> 项

Delphi 2007 - 允许在 TSaveDialog 中选择只读文件

delphi - 标准对话框不弹出

delphi - 似乎有时 Delphi 区分大小写 - "override method should match case of ancestor"

delphi - 从单词位置检测文本列

delphi - Virtual Treeview (C++ Builder) 2 个图标在 Windows 7 上重叠,但在 XP 上不重叠

javascript - Angular 过滤器 - 根据值数组过滤 JSON 结果

angularjs - AngularJS:如何仅在字符串超出限制时使用limitTo来显示椭圆

python - 根据条件将 Pandas DataFrame 中的一行替换为 'NaN'