我们正在将应用程序从 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/