如何使WebHelp显示特定主题的帮助而不是索引?

时间:2012-12-11 00:05:36

标签: delphi lazarus

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

WebHelp实际上在框架集中使用了一对html页面 - 左侧是索引,右侧是相关主题。要在Web浏览器中的特定页面上打开帮助系统,请将其命名为:

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 #what.htm

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

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

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

1 个答案:

答案 0 :(得分: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应用程序访问。