如何解决未声明的标识符问题

时间:2014-12-16 06:35:00

标签: delphi delphi-xe7

我是Delphi XE7中的新手,得到了一个项目并尝试构建它,但它给出了错误,如

  

未声明的标识符'图像'

在行..

(TContainedAction(Action).ActionList.Images.Draw(ACanvas, GlyphRect.Left, GlyphRect.Top)

  

TContainedAction不包含名为“image”的成员。

请帮我解决问题。

1 个答案:

答案 0 :(得分:1)

错误很容易理解。您的代码正在搜索的范围中未定义任何变量或成员。

  

未声明的标识符'图片'

TContainedAction.ActionList的类型为TContainedActionListTContainedActionList没有名为Images的成员。因此错误。

您需要将TContainedActionList引用向上转换为具有您要查找的成员的类型。我不知道那种类型是什么,因为除了问题之外,我无法看到你的任何代码。也许施放到TActionList就足够了。

你正在使用未经检查的强制转换来玩火。使用运行时检查的强制转换,以便您查明是否出错。

uses
  System.Actions, Vcl.ActnList;
....
var
  ActionList: TActionList;
....
ActionList := (Action as TContainedAction).ActionList as TActionList;
// now you can refer to ActionList.Images;

有一点不清楚,为什么你需要施放Action。由于我们不知道Action是什么,我们无法建议,除了评论所有这些演员都感到奇怪。

  

TContainedAction不包含名为' image'

的成员

此错误消息与问题中的任何代码都不匹配。