2012-02-09 55 views
1

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

在Win 7 64

用Delphi XE2(更新3)使用与我的德尔福6内置的应用程序工作的有效帮助文件(的.chm)。

我创建一个按钮调用正是如此帮助下,简单的应用程序:

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

我有HTMLHelpViewer在我的使用条款。

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

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

我也试过直接调用表的内容是这样的:

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

没什么要么显示这种方式。

我在这里错过了什么?如果我在用户按F1键时无法显示帮助文件,这是一个显示停止。

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

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

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

所以,一旦我想出这个问题,我不得不回到原来的应用程序,并找出一个。

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

一旦我打开我们的文件的版本,并从硬盘驱动器中删除它,并在德尔福的版本中添加一切运作顺畅。

感谢您的敲门声,帮助我弄清楚这一点。

+0

本地驱动器上或网络驱动器上的chm?有一个安全功能可以防止从非本地驱动器打开chm文件... – ain 2012-02-09 15:56:08

+0

@ain发生这种情况时,会出现一个窗口,但缺少帮助内容 – 2012-02-09 16:13:40

+2

您已经找到它了,但除此之外,在Application.HelpFile中指定完全限定的路径可能并不会造成任何影响。 – 2012-02-09 16:38:55

回答

4

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

我会保持工作目录超出等式,并将Application.HelpFile设置为帮助文件的完全限定路径。

+0

呃,是的,那是我在简单测试应用程序中遇到的问题。 DOH! – 2012-02-09 16:31:39

0

是由安装程序安装的帮助文件?

如果没有,请右键单击它并选择属性中的“取消阻止”

相关问题