我试图在Delphi 2009中打开,保存,查找和打印常用对话框中添加一个帮助按钮。frShowHelp是否适用于Delphi中的通用对话框?
我认为正确的方法是在对话框的Options属性中将frShowHelp设置为true :
但是,当我这样做,对话框出现与没有的选项,例如:
我期待看到取消按钮下方的帮助按钮,但它不存在。
我在Windows Vista下开发。 Microsoft是否消除了将Help按钮添加到其通用对话框的能力,还是我做错了什么?
我试图在Delphi 2009中打开,保存,查找和打印常用对话框中添加一个帮助按钮。frShowHelp是否适用于Delphi中的通用对话框?
我认为正确的方法是在对话框的Options属性中将frShowHelp设置为true :
但是,当我这样做,对话框出现与没有的选项,例如:
我期待看到取消按钮下方的帮助按钮,但它不存在。
我在Windows Vista下开发。 Microsoft是否消除了将Help按钮添加到其通用对话框的能力,还是我做错了什么?
查找对话框
包括frShowHelp
在Options
和帮助按钮就会出现。很难理解为什么这不适合你。
打印对话框
纳入Options
poHelp
和帮助按钮就会出现。
文件对话框
现在这些没有Vista中引入的时候改变。新的对话框没有内置的显示帮助按钮的功能。
通过将Dialogs.UseLatestCommonDialogs
设置为False
,您可以始终恢复到传统XP对话框。如果你这样做,你可以设置ofShowHelp
,HelpContext
等
如果可用,你应该更喜欢使用新的对话框。对于那些对话框,您需要使用IFileDialogCustomize
来添加帮助按钮。
在Delphi中,对于Vista及更高版本,您需要直接使用TFileOpenDialog
或TFileSaveDialog
而不是TOpenDialog
和TSaveDialog
。您将创建对话对象,然后请求Dialog
属性中的IFileDialogCustomize
接口。最好的地方是在对话框控件的DoExecute
事件中。
procedure TForm1.FileOpenDialog1Execute(Sender: TObject);
var
FileDialogCustomize: IFileDialogCustomize;
begin
FileDialogCustomize := FileOpenDialog1.Dialog as IFileDialogCustomize;
FileDialogCustomize.AddPushButton(0, 'Help');
end;
自己实现该功能我确认在“打印”对话框中确实出现“帮助”按钮时poHelp被添加。它显然使用不同的机制,用poHelp代替frShowHelp。我测试了我的问题的“查找和打开”对话框,并假定“保存并打印”的内容是相同的。但是当我包含frShowHelp时,我的查找对话框没有显示帮助按钮。我在做的事情必须有所不同。所以考虑到这一点,我会再研究一些。 – lkessler
我能够让帮助按钮出现在另一个项目中。但它是我的应用程序,它不会,即使有一个新的FindFile对话框。仍在研究... – lkessler
这是令人难以置信的。在查找对话框的另一个项目上找到帮助按钮后。我回到我的项目并再次尝试。令我惊讶的是,现在出现了帮助按钮!我知道这在我之前的二十次尝试中并没有。我不知道为什么这个修复它。但至少现在正在工作。 – lkessler
TFindDialog是VCL提供的对话框,不是Microsoft常用对话框;所以如果有任何事情被打破,那可能不是因为微软。 –
这不是真的。 TFindDialog是Microsoft的Find对话框的一个包装。 –
请参阅:http://msdn.microsoft.com/en-us/library/ms646956.aspx –