2011-10-30 36 views
2

我试图在Delphi 2009中打开,保存,查找和打印常用对话框中添加一个帮助按钮。frShowHelp是否适用于Delphi中的通用对话框?

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

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

我期待看到取消按钮下方的帮助按钮,但它不存在。

我在Windows Vista下开发。 Microsoft是否消除了将Help按钮添加到其通用对话框的能力,还是我做错了什么?

+0

TFindDialog是VCL提供的对话框,不是Microsoft常用对话框;所以如果有任何事情被打破,那可能不是因为微软。 –

+0

这不是真的。 TFindDialog是Microsoft的Find对话框的一个包装。 –

+0

请参阅:http://msdn.microsoft.com/en-us/library/ms646956.aspx –

回答

3

查找对话框

包括frShowHelpOptions和帮助按钮就会出现。很难理解为什么这不适合你。

打印对话框

纳入OptionspoHelp和帮助按钮就会出现。

文件对话框

现在这些没有Vista中引入的时候改变。新的对话框没有内置的显示帮助按钮的功能。

通过将Dialogs.UseLatestCommonDialogs设置为False,您可以始终恢复到传统XP对话框。如果你这样做,你可以设置ofShowHelp,HelpContext

如果可用,你应该更喜欢使用新的对话框。对于那些对话框,您需要使用IFileDialogCustomize来添加帮助按钮。

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

procedure TForm1.FileOpenDialog1Execute(Sender: TObject); 
var 
    FileDialogCustomize: IFileDialogCustomize; 
begin 
    FileDialogCustomize := FileOpenDialog1.Dialog as IFileDialogCustomize; 
    FileDialogCustomize.AddPushButton(0, 'Help'); 
end; 
+0

自己实现该功能我确认在“打印”对话框中确实出现“帮助”按钮时poHelp被添加。它显然使用不同的机制,用poHelp代替frShowHelp。我测试了我的问题的“查找和打开”对话框,并假定“保存并打印”的内容是相同的。但是当我包含frShowHelp时,我的查找对话框没有显示帮助按钮。我在做的事情必须有所不同。所以考虑到这一点,我会再研究一些。 – lkessler

+0

我能够让帮助按钮出现在另一个项目中。但它是我的应用程序,它不会,即使有一个新的FindFile对话框。仍在研究... – lkessler

+0

这是令人难以置信的。在查找对话框的另一个项目上找到帮助按钮后。我回到我的项目并再次尝试。令我惊讶的是,现在出现了帮助按钮!我知道这在我之前的二十次尝试中并没有。我不知道为什么这个修复它。但至少现在正在工作。 – lkessler

相关问题