【问题标题】:Delphi XE2 TPointerList usageDelphi XE2 TPointerList 用法
【发布时间】: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 数组”称为“列表”,尤其是在类型声明中。这种混乱只会惹恼人们。例如,TL​​ist-types 具有 Add(x) 方法,而 Arrays 根本不是对象类型,而您必须使用 SetLength。因此,“TSomethingList”不是“指针数组”别名的好名字。
  • @warren 你应该向代码的作者 emba 提出这个问题
  • @david 你对我的“更正”是正确的,我忘了编辑它,现在这里也更正了。

标签: delphi delphi-xe2 tlist


【解决方案1】:

a) Integer(FList[i]) 也可以。

b) 没有这样的设置。

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

【讨论】:

  • 我会这样使用搜索和替换。我刚刚发现 TList.List 在 XE2 中发生了变化,它是 XE2 之前的 PPointerList ...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-24
  • 2011-12-19
  • 2023-03-27
  • 2016-04-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多