【发布时间】:2012-01-05 11:45:51
【问题描述】:
我在尝试在 XE2 中编译某些组件时遇到以下问题。这些组件不是为 XE2 准备的,但我还是在尝试编译它们。
在组件中它被声明为
FList : TList;
当使用它时,例如
SomeVariable := Integer(FList.List^[i]);
它会产生“需要指针类型”编译错误。
我可以这样改
SomeVariable := Integer(FList.List[i]);
但天知道我需要多少时间来修复所有出现的错误。
是否有一些编译器指令或设置可以处理这个问题。我试过 {$X} 和 {$T} 没有效果。
在XE2 Delphi中TPointerList(TList.List属性)被声明为动态数组
type TPointerList = array of Pointer;
如果有人可以帮忙?
【问题讨论】:
-
不,您必须更改第 3 方代码。或从代码供应商处获取更新。
-
另外,您的“更正”不正确。你的意思是:
Integer(FList.List[i]) -
我认为您永远不应该将“X 数组”称为“列表”,尤其是在类型声明中。这种混乱只会惹恼人们。例如,TList-types 具有 Add(x) 方法,而 Arrays 根本不是对象类型,而您必须使用 SetLength。因此,“TSomethingList”不是“指针数组”别名的好名字。
-
@warren 你应该向代码的作者 emba 提出这个问题
-
@david 你对我的“更正”是正确的,我忘了编辑它,现在这里也更正了。
标签: delphi delphi-xe2 tlist