1

我正在为我的 Lazarus 应用程序添加帮助。我正在使用 WebHelp 而不是 CHM 帮助来帮助跨平台使用。

WebHelp 本质上使用框架集中的一对 html 页面 - 左侧是索引,右侧是相关主题。在网络浏览器的特定页面打开帮助系统,它被称为:

file:///path_to_help_files/index.htm#specific.htm

按照http://wiki.freepascal.org/Add_Help_to_Your_Application的说明,Lazarus 表单有一个 THTMLHelpDatabase 组件和一个 THTMLBrowserHelpViewer 组件。

各个组件的 HelpType 设置为 htKeyword,HelpKeyword 设置为 HTML/index.htm 或 HTML/index.htm#something.htm

无论我输入什么,帮助文件只在默认页面(即 index.htm)打开。

有人对如何在特定页面打开帮助页面有任何想法吗?

[我不能指定 HTML/something.htm 的 HelpKeyword,因为这样会省略主题索引。实际上,我必须通过 index.htm 才能显示框架集。]

4

1 回答 1

0

我找到了一个解决方案,但它有点笨拙,所以如果有人有更好的主意,我想听听。

本质上,我为 something.html 创建了一个重定向,如下所示:

<!doctype html>
<html>
  <head>
    <title>Something</title>
    <meta http-equiv="REFRESH" content="0;url=index.htm#something.htm">
  </head>
  <body>
    Redirect to index.html
  </body>
</html>

然后,我将相关的 Lazarus 控件指向 HelpKeyword 中的 HTML/something.html,以便在调用帮助时,它会重定向到正确的 URL。(是的,我使用 .html 扩展名进行重定向,而真实文件具有 .htm 扩展名 - 由帮助创作应用程序强制执行)。

真正的麻烦是我必须为帮助系统中的每个主题都有一个重定向文件,我想直接从 Lazarus 应用程序访问。

于 2012-12-11T08:13:57.483 回答