1

我正在从 Delphi 6 升级到 Delphi XE。在 Delphi 6 中,我使用 HTML 帮助文件 (.chm) 并使用 StoHtmlHelp 来制作它,这样我就可以像以前调用 .hlp 文件一样调用上下文相关帮助。我正在升级到 Delphi XE,所以我需要使用原生 HTML 帮助支持。

我知道我应该将 HTMLHelpViewer 添加到项目的 uses 子句中,但是当我这样做时,我得到一个编译器警告它找不到该文件。

无法编译使用的单元“HTMLHelpViewer.pas”

有谁知道为什么 Delphi 默认找不到这个文件?它应该是内置的。

4

2 回答 2

7

无法编译文件和找不到文件不是一回事。如果 Delphi 试图编译 HTMLHelpViewer.pas,你必须:

  • 在您的库路径上有 vcl 源文件夹(不推荐),或者
  • 另一个 HTMLHelpViewer.pas 文件位于库路径的某个位置,该路径位于标准 Delphi lib 文件夹之前,并且该 HTMLHelpViewer.pas 文件包含 Delphi XE 不满意的内容。

第一个不太可能,如果 Delphi 不能编译它的一个单元(除了 system.pas),那确实会很奇怪。

第二个似乎更有可能......如果该单元用于编译,那么来自 Delphi XE 的投诉很可能是由于 Delphi 6 和 Delphi XE 之间的差异。

于 2011-02-28T19:15:11.880 回答
3

您实际上不需要将其添加到 .dpr 文件的使用子句中——您只需要在项目中的某个单元中使用它。

话虽如此,您实际上可能更喜欢将其添加到您的 .dpr 文件中,如果是这样,请这样做:

uses
  Forms,
  HtmlHelpViewer,
  MyUnit in 'MyUnit.pas',

我猜你有这样的事情:

uses
  Forms,
  HtmlHelpViewer in 'C:\Program Files\Borland\Delphi6\Source\VCL\HtmlHelpViewer.pas',
  MyUnit in 'MyUnit.pas',

这将失败,因为您要求 XE 编译 D6 源代码。

对于 RTL/VCL 单元,最好省略文件的路径并让编译器找到它(它知道在哪里查找)。

于 2011-02-28T22:18:08.033 回答