不满意的前言或外部声明? PictureContainer.pas

时间:2014-05-20 14:05:13

标签: delphi delphi-7

我在Delphi 7中遇到一个特定问题,我正在尝试运行一个由外部方创建的自定义应用程序,所以从某种意义上说,我是一个试图修复bug的自由lancer等等。

问题:不满意的前向或外部声明

这与TMS Component Pack v5有关,我遇到问题的文件是PictureContainer.pas

这是我得到的错误:

  

[错误] PictureContainer.pas(135):不满意的前瞻性或外部声明:' THTMLPicture.GetStretched'

     

[错误] PictureContainer.pas(136):不满意的前向或外部声明:' THTMLPicture.SetStretched'

     

[错误] PictureContainer.pas(188):不满意的前向或外部声明:' THTMLPictureCache.Destroy'

     

[致命错误] HTMLStatusBar.pas(29):无法编译使用过的单位' PictureContainer.pas'

我一直在努力为此寻找解决方案,而且有很多这样的解决方案,但是在这一点上,由于我对这种类型的错误了解不多,所以我很容易失去这种解决方案。

请,任何帮助将不胜感激

谢谢

以下是PictureContainer.pas源代码的相关说明:

unit PictureContainer;

{$I TMSDEFS.INC}

interface

//CUT

type
   //NOTE: THTMLPicture is not defined in this unit, but we do have includes...
   {$I WIIF.PAS}

//CUT   

implementation

//CUT

{$I WIIMPL.PAS}

//CUT

{ TPictureCollection } Error line 135 <-------------
                       Error line 136 <-------------
function TPictureCollection.Add: TPictureItem;

//CUT    

constructor TPictureContainer.Create(AOwner: TComponent); Error line 188 <-------------
begin

//CUT

1 个答案:

答案 0 :(得分:4)

当编译器说“不满意的前向或外部声明”时,它意味着代码中的某个地方是函数的声明,但它无法找到该函数的定义。功能需要定义。

在您的情况下,缺少的实现适用于THTMLPictureTHTMLPictureCache之一的两种方法。它们显然不存在于您目前提供的代码中,因此编译器抱怨是正确的。

这种错误有几种可能的解决方案:

  • 找到实现并确保编译器也可以找到它们。也许这些实现存在于源代码中,但由于某些$IFDEF表达式已经过时,它们被某种方式排除在外。或许编译器找不到一些意图通过$INCLUDE指令合并的文件。
  • 确定不确实需要未定义的方法,并删除它们的声明。当编译器不知道声明时,编译器不会抱怨缺少定义。
  • 实施它们。这通常是错误出现在您自己的代码中的解决方案,因为它通常表示您在尝试运行之前忘记完成编写程序。