frShowHelp是否可以再用于Delphi中的常用对话框?

Does the frShowHelp Work Anymore for Common Dialogs in Delphi?

我试图在Delphi 2009中的"打开,保存,查找和打印"常用对话框上添加一个"帮助"按钮。

我认为正确的方法是在对话框的Options属性中将frShowHelp设置为true:enter image description here

但是当我这样做时,对话框的出现与没有选项的情况相同,例如:enter image description here

我希望在"取消"按钮下方看到一个"帮助"按钮,但它不存在。

我正在Windows Vista下开发。 Microsoft是否消除了在其常用对话框中添加"帮助"按钮的功能,还是我做错了什么?


查找对话框

Options中包含frShowHelp,将显示帮助按钮。 很难理解为什么这对您不起作用。

打印对话框

Options中包含poHelp,将显示帮助按钮。

文件对话框

现在,在引入Vista时,这些确实发生了变化。 新对话框没有内置的显示帮助按钮的功能。

通过将Dialogs.UseLatestCommonDialogs设置为False,您始终可以恢复到旧版XP对话框。 如果这样做,可以设置ofShowHelpHelpContext等。

如果有可用的话,您应该首选使用新对话框。 对于这些对话框,您需要使用IFileDialogCustomize添加帮助按钮。

在Delphi中,对于Vista及更高版本,您需要直接使用TFileOpenDialogTFileSaveDialog而不是TOpenDialogTSaveDialog。 您将创建对话框对象,然后从Dialog属性请求IFileDialogCustomize接口。 最佳方法是在对话框控件的DoExecute事件中。

1
2
3
4
5
6
7
procedure TForm1.FileOpenDialog1Execute(Sender: TObject);
var
  FileDialogCustomize: IFileDialogCustomize;
begin
  FileDialogCustomize := FileOpenDialog1.Dialog as IFileDialogCustomize;
  FileDialogCustomize.AddPushButton(0, 'Help');
end;