2012-01-05 208 views
1

我试图编译XE2中的某些组件时出现以下问题。这些组件没有为XE2准备,但我仍然试图编译它们。Delphi XE2 TPointerList用法

在一个组件中使用它是例如像

SomeVariable := Integer(FList.List^[i]); 

它产生编译错误“所需指针型”时,它被声明等

FList : TList; 

我可以纠正它像这样

SomeVariable := Integer(FList.List[i]); 

但上帝知道多少时间,我需要修复故障的所有occurencies。

是否有一些编译器指令或设置可以处理这个问题。我尝试过{$ X}和{$ T},但效果不佳。

在XE2德尔福TPointerList(TList.List属性)声明为动态数组

type TPointerList = array of Pointer; 

如果有人可以帮助?

+0

不,您必须更改第三方代码。或者从代码供应商处获得更新。 – 2012-01-05 12:41:55

+0

此外,您的“更正”不正确。你的意思是:整数(FList.List [i])' – 2012-01-05 12:45:02

+0

我认为你绝对不应该把一个“Array of X”称为“List”,特别是在一个类型声明中。这种混乱只会让人们烦恼。例如,TL​​ist类型具有Add(x)方法,而数组根本不是对象类型,而是必须SetLength。因此,“TSomethingList”不是“指针数组”的别名的好名字。 – 2012-01-05 17:39:00

回答

1

a)整数(FList [i])也可以工作。

b)没有这样的设置。

c)也许你可以搜索&替换.List^[ - > [?

+1

我将使用搜索和替换。我刚刚发现在XE2中更改了TList.List,它是XE2之前的PPointerList ... – Sofija 2012-01-05 12:52:35