如何在我的应用程序中使用 hlp 文件获取上下文相关帮助?

How can I use a hlp file for context sensitive help in my application?

我有一个与应用程序一起使用的 .hlp 文件。
因为自从我上次编写应用程序以来功能没有改变,所以 hlp(写于 2003 年)仍然有效。
但是,当我在 Delphi XE7 中编译应用程序时,我无法让应用程序识别 hlp 文件。

在我的 .dpr 文件中

begin
  Application.Initialize;
  Application.HelpFile := 'Life32.hlp';
  Application.Run;
  //sometimes the application hung here, due to OLE issues
  //exitprocess prevents that.
  ExitProcess(0);
end.

当我做的时候

procedure TProgCorner.Button2Click(Sender: TObject);
begin
  Application.HelpContext(4);
end;

我明白了

First chance exception at EEB9BC. Exception class EHelpSystemException with message 'No context-sensitive help installed'.

表格的helpfile属性设置为exename.hlp.
在资源管理器中手动双击 .hlp 文件即可打开 hlp 文件。

如何让 Delphi 在调用时打开 hlp 文件?

您必须在项目中包含 Vcl.WinHelpViewer 单元才能安装 WinHelp 系统。

请注意,WinHelp 支持在 XP 和更高版本上结束,WinHelp 组件必须单独安装。

对于 Delphi 的更高版本,例如 10(西雅图)、10.1(柏林)、10.2(东京)、10.3(里约)和 10.4(悉尼):

  • 如果您的帮助文件是 WinHelp .hlp 文件,请将 Vcl.WinHelpViewer 单元添加到应用程序的使用子句中。
  • 如果您的帮助文件是 HTML 帮助 .chm 文件,请添加 Vcl.HtmlHelpViewer 单元而不是 Vcl.WinHelpViewer 单元。

您不应将两个单元添加到同一个应用程序。

全文:HelpScribble’s HelpContext Property Editor