【发布时间】:2019-01-24 21:26:09
【问题描述】:
问题
我正在使用 Embarcadero C++ Builder XE。 当用户按下键盘上的 F1 按钮时,我试图触发打开帮助文件 (*.chm)。 我以为我所做的一切都是正确的,但是按下 F1 时我没有得到任何响应/操作。
我做了什么:
我创建了一个 .chm 帮助文件(使用 Microsoft HTML Help Workshop)。 我已将编译后的 .chm 文件复制到应用程序目录。 我已经设置:
Application->HelpFile = "My_Help.chm";
在主窗体中,我已将 HelpFile 属性设置为相同的 .chm 文件。
在主窗体中,我包含了以下两行代码:
#include "HtmlHelpViewer.hpp"
#pragma link "HTMLHelpViewer"
令人困惑的是:几周前我有这个工作,随后“丢失”了代码:(
从那以后,当我去重新创建解决方案时,我没有成功。
还有
如果我定义了一个帮助按钮,详见此处 (embarcadero),仍然没有任何反应。
但是,如果我将以下代码附加到按钮上,则会打开帮助文件:
Application->HelpContext(0);
问题
有没有人知道为什么这以前会起作用,但现在却不起作用? 也许我过去做过一个简单的步骤但忘记了,但我已经搜索了我能找到的所有帮助(包括helpscribble),并涵盖了我看到的所有步骤。 任何帮助将不胜感激。
(我尝试在 Embarcadero 论坛上发帖,但目前这完全是浪费时间)
【问题讨论】:
-
特别是,您在本地目录中有 CHM 文件吗?我听说 chm 和 Windows 10 更新存在一些问题。
-
我想您会发现 CHM 存在某种安全限制。一旦您批准它,HTML 帮助文件就会成功打开。我记得有一个工作同事有这样的问题。给他们发邮件也有问题..
-
可能取决于您在表单的帮助上下文/关键字字段中输入的内容?
-
help-info: 我已经在本地目录和其他目录中尝试过 CHM。另外,我使用的是 Windows 7,而不是 10。 JGFMK:我不知道如何检查 CHM 文件的安全限制,但如果这是可能的,那么安装我的应用程序的任何用户都将不得不跳过相同的障碍可笑。 Marco:我尝试了大约 10 种不同的 CHM 文件——我的,以及与其他应用程序一起使用的标准文件。全部:我不断回到这个事实:我让它在我的 PC 上和我的应用程序上运行 - 然后丢失了代码并试图再次这样做。
-
@garrettB 我一定忽略了“丢失的代码”部分。我的印象是您的代码有效,并且只有在升级 win 之后它才停止(在这种情况下,我的回答将是相关的)。但显然情况并非如此,所以请忽略我的回答(我删除了它)。在没有看到您的应用程序的代码/层次结构/组织的情况下,我唯一能想到的是,您要么在某处覆盖 VCL 事件,要么更有可能出现内存访问错误/泄漏覆盖 VCL 代码(过去确实发生在我身上几次导致奇怪的行为而没有抛出任何错误/异常)
标签: c++builder chm c++builder-xe helpfile