为 Delphi 应用程序设置帮助(特别是 HTML Help )的最佳方法是什么?我可以看到几种选择,但它们都有缺点。具体来说:
- 我可以在表单设计器中适本地设置 HelpContext,但随后我不得不跟踪数字而不是符号常量。
- 我可以通过编程方式设置 HelpContext。然后我可以使用符号常量,但我需要编写更多代码,而且我无法轻松检查文本 DFM 以了解哪些表单仍需要帮助。
- 我可以设置 HelpKeyword,但由于它执行关键字查找(如 Application.HelpKeyword)而不是主题跳转(如 Application.HelpJump),因此我必须确保每个帮助页面都有一个唯一的、不变的顶级关键字;这似乎是额外的工作。 (还有与 HelpKeyword 相关的 VCL 错误,例如 this 和 this。)
- 我可以设置 HelpKeyword,设置一个 Application.OnHelp 处理程序以将 HelpKeyword 请求转换为 HelpJump 请求,以便我可以通过主题 ID 而不是关键字查找来分配帮助,并添加代码,例如我自己的帮助查看器(基于 HelpScribble's code) )修复了 VCL 错误并让 HelpJump 使用 anchor 。不过,到目前为止,我觉得我是在反对 VCL,而不是与它合作。
您为您的应用选择了哪种方法?
最佳答案
几年前,当我第一次开始研究如何做到这一点时,我首先从以下位置获得了“关于 Borland Delphi 中的帮助文件”教程:http://www.ec-software.com/support_tutorials.html
在该文档中,“为上下文相关帮助准备帮助文件”部分(在我的文档版本中从第 28 页开始)。它描述了一个很好的编号方案,您可以使用它来将数字组织成多个部分,例如主表单从 100000 开始,每个辅助表单从 101000 或 110000 开始,依此类推。
但是后来我想在我的帮助主题中使用描述性字符串 ID 而不是数字。我开始使用 THelpRouter,它是 EC Software 的免费帮助套件的一部分,网址为: http://www.ec-software.com/downloads_delphi.html
但后来我选择了一个直接支持主题字符串 ID 的帮助工具(我使用 Dr.Explain: http://www.drexplain.com/ ),所以现在我只需使用 HelpJump,例如:
Application.HelpJump('UGQuickStart');
希望对您有所帮助。
关于delphi - 为 Delphi 应用程序设置帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/658193/