打开文件对话框与Vista下的编码组合框
-
21-08-2019 - |
题
我目前使用的TOpenTextFileDialog因为它的编码选项,但在Vista下它似乎使用旧的打开对话框样式。我想新的样式打开对话框,但是有一个编码组合框,我可以自定义字符串填写。基本上我想要的确切打开对话框,记事本显示在Vista下。当然,我还需要相应的保存对话框为好。
我做了一些研究,似乎OFN_ENABLETEMPLATE标志导致Vista中常见的对话框回落到旧的风格。不幸的是这也是让TOpenTextFileDialog修改窗口来添加编码组合框的标志(如果我理解正确的事情。)
有没有人对如何得到我想要在Vista下一个建议,但仍然有它XP下工作吗?我认为Windows 7将有同样的问题。我使用D2009。感谢您的任何建议或帮助!
解决方案
在Vista中处理文件对话框的新方法已经出台,以获取更多信息谷歌的IFileDialog
接口或看看的这个博客帖子。至于你说的你自己,使用OFN_ENABLETEMPLATE
标志导致Vista中常见的对话框回落到旧的风格。
用Delphi 2007和2009年可以使用TFileOpenDialog
和TFileSaveDialog
在 Vista的对话框的组件类别。为了让您的应用程序,你应该继续使用对那些在TOpenTextFileDialog
Vista之前的Windows版本兼容,并在运行时检查你是否是在Vista和可以使用新的对话框:
if Win32MajorVersion >= 6 then begin
// use TFileOpenDialog
// ...
end else begin
// use TOpenTextFileDialog
// ...
end;
现在你只需要自定义添加到Vista的对话框。 的博客帖子展示了如何通过增加一个处理程序对话框的OnExecute
(因为如果这就是所谓的IFileDialog
接口已经成立已经是时间),查询了Dialog
接口文件对话框的IFileDialogCustomize
成员,并以此来增加要做到这一点,该额外的控制。