Delphi 7 And __ArrayList

本文关键字:ArrayList And Delphi | 更新日期: 2023-09-27 18:19:42

在Delphi 7中:

如何读取COM DLL中返回的数组列表​​在C#中?

我试过这个:

var
  products: IList;
begin
  products := MyClass.Products() as IList;
  //...
end;

文档中建议使用这种模式,但在Delphi7中,我不能在我的产品变量中应用for或while或其他什么。

我的意图是读取结果并将其存储在我的树视图中。

我该怎么做?

注意:IList是从mscorlib_TLB.pas派生的,显然在Delphi 7中,没有办法像最近版本的Delphi 中那样进行扫描或计数

Delphi 7 And __ArrayList

使用IList,您可以调用从IEnumerable接口继承的GetEnumerator,以获得IEnumerator接口并对其进行迭代。在伪代码中:

enumerator := products.GetEnumerator;
while enumerator.MoveNext do
  DoStuff(enumerator.Current);

我想您需要将Current强制转换为代码中更有用的内容。您可能还需要将IList转换为IEnumerable,如@TLama所述。