我目前使用的TOpenTextFileDialog因为它的编码选项,但在Vista下它似乎使用旧的打开对话框样式。我想新的样式打开对话框,但是有一个编码组合框,我可以自定义字符串填写。基本上我想要的确切打开对话框,记事本显示在Vista下。当然,我还需要相应的保存对话框为好。

我做了一些研究,似乎OFN_ENABLETEMPLATE标志导致Vista中常见的对话框回落到旧的风格。不幸的是这也是让TOpenTextFileDialog修改窗口来添加编码组合框的标志(如果我理解正确的事情。)

有没有人对如何得到我想要在Vista下一个建议,但仍然有它XP下工作吗?我认为Windows 7将有同样的问题。我使用D2009。感谢您的任何建议或帮助!

有帮助吗?

解决方案

在Vista中处理文件对话框的新方法已经出台,以获取更多信息谷歌的IFileDialog接口或看看的这个博客帖子。至于你说的你自己,使用OFN_ENABLETEMPLATE标志导致Vista中常见的对话框回落到旧的风格。

用Delphi 2007和2009年可以使用TFileOpenDialogTFileSaveDialog Vista的对话框的组件类别。为了让您的应用程序,你应该继续使用对那些在TOpenTextFileDialog Vista之前的Windows版本兼容,并在运行时检查你是否是在Vista和可以使用新的对话框:

if Win32MajorVersion >= 6 then begin
  // use TFileOpenDialog
  // ...
end else begin
  // use TOpenTextFileDialog
  // ...
end;

现在你只需要自定义添加到Vista的对话框。 的博客帖子展示了如何通过增加一个处理程序对话框的OnExecute(因为如果这就是所谓的IFileDialog接口已经成立已经是时间),查询了Dialog接口文件对话框的IFileDialogCustomize成员,并以此来增加要做到这一点,该额外的控制。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top