【问题标题】:How to use chm in Delphi 7?如何在 Delphi 7 中使用 chm?
【发布时间】:2013-03-14 11:38:06
【问题描述】:

Delphi 7程序中如何从chm文件中调用帮助?

Application.HelpFile := 'd:\help.chm';
Application.HelpCommand(HELP_CONTEXT, 10);

结果是

为什么我不能从这个程序中获得帮助?

此程序的帮助是以 Windows 帮助格式创建的,它 取决于此版本的 Windows 中未包含的功能。 但是,您可以下载一个允许您查看帮助的程序 以 Windows 帮助格式创建。

有关详细信息,请访问 Microsoft 帮助和支持网站。

【问题讨论】:

  • 如果您告诉我们您从哪个 Windows 版本收到该错误消息也会有所帮助,因为这似乎是问题的一部分。您正在使用什么(哪个单元)来访问 HTML 帮助?

标签: delphi delphi-7 chm


【解决方案1】:

问题在于,默认情况下,Delphi 7 假定帮助文件使用 Vista 未附带的旧 WinHelp 格式。即使您的帮助文件具有 .chm 扩展名,Delphi 也会尝试使用 WinHelp 命令显示它。由于 WinHelp 不存在,您会收到您报告的错误消息。

有多种方法可以让帮助系统显示 HTML 帮助。例如,一种常见的技术是为Application 对象实现OnHelp 处理程序,并将帮助路由到对HtmlHelp API 的调用。我在recent answer 中给出了一个非常简单的例子。

【讨论】:

  • @MarcovandeVoort 是的,这是一个很好的链接。我们在 D6 上时使用了该代码。我认为OnHelp 问题已在 D7 中修复。不是我用过 D7。
【解决方案2】:

要打开 CHM 文件,我使用以下代码:

    ShellExecute(Handle, 'open', PChar(ExtractFilePath(Application.ExeName) + 'help.chm'), nil, nil, SW_SHOW);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-30
    • 2013-05-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多