delphi - 无法在 Delphi XE2 应用程序中显示 .chm 帮助文件 - 为什么?

标签 delphi delphi-xe2 chm

我们正在将应用程序从 Delphi 6 移植到 Delphi XE2。问题是,无论我尝试什么,帮助文件都不会显示。

在 Win 7 64 上使用 Delphi XE2(更新 3)。

使用适用于我的 Delphi 6 构建的应用程序的有效帮助文件 (.chm)。

我创建了一个简单的应用程序,其中一个按钮可以调用帮助:

  Application.HelpFile := 'Help.chm';
  if Application.HelpFile <> '' then begin
    Application.HelpContext(0);
  end;

我的 use 子句中有 HTMLHelpViewer。

帮助文件与应用程序位于同一目录中。当我单击按钮时,不显示帮助文件!我什么也没看见。没有错误。

我尝试了几个不同的帮助文件,所有这些文件都是有效的,并且我可以通过资源管理器打开。

我还尝试像这样直接调用目录:

HtmlHelp(0, Application.HelpFile, HH_DISPLAY_TOC, 0);

这种方式也没有显示任何内容。

我到底错过了什么?如果我无法在用户按 F1 键时显示帮助文件,这将是一个阻碍。

------ 编辑 - 问题已解决! ------

唉,我是个白痴,但只是部分白痴。 :)

这个简单的应用程序确实将帮助文件放在了错误的目录中。新的 Delphi XE2 在子目录中默认输出,而不是像 Delphi 6 那样在原始目录中。我现在已经被它咬过两次了。 :)

所以,一旦我解决了这个问题,我就必须回到原来的应用程序并解决这个问题。

事实证明,我们在项目(BIG 项目)中有自己的 HTMLHelpViewer.pas 单元,并且与 Delphi XE2 附带的内置 HTMLHelpViewer 单元发生冲突。

一旦我破解了该文件的我们版本并将其从硬盘驱动器中删除并添加到 Delphi 的版本中,一切都会顺利进行。

感谢您帮我解决这个问题。

最佳答案

根据您提供的信息,我能看到的唯一解释是帮助文件不在当前工作目录中。

我会将工作目录排除在外,并将 Application.HelpFile 设置为帮助文件的完全限定路径。

关于delphi - 无法在 Delphi XE2 应用程序中显示 .chm 帮助文件 - 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9212836/

相关文章:

delphi - 如何防止 "end process tree"终止我已启动的程序?

delphi - 使用数组的更简单方法

arrays - 当持有数组的引用计数增加时,如何增加子数组的引用计数?

chm - 如何打开 .hxs 文件?

windows - 如何防止 DEP 杀死我的 JITted 异常处理程序?

delphi - Indy 9 和 Windows Server 2003 之间不兼容?

delphi - 无法在 Delphi 中为 VIES SOAP 服务加载 WSDL 文件/位置

delphi - 是否可以配置构建配置以自动添加目标平台的后缀?

java - 编译Java文件,其中包含外部文件。 (CHM)

PHP 手册 - .chm 文件不工作