Delphi中如何将TObjectList的祖先转换为泛型集合?

2026-04-10 20:522阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计268个文字,预计阅读时间需要2分钟。

Delphi中如何将TObjectList的祖先转换为泛型集合?

我创建了一个名为TMyAwesomeList的类,它继承自TObjectList。TMyAwesomeItem是一个持久类,几乎是一个抽象类。TAwesomeItem1、TAwesomeItem2和TAwesomeItem3都是TAwesomeItem的子类。

我上了课

TMyAwesomeList = class(TObjectList)

哪个

Delphi中如何将TObjectList的祖先转换为泛型集合?

TAwesomeItem = class(TPersistent)

其中TAwesomeItem几乎是一个抽象类

TAwesomeItem1 = class(TAwesomeItem) TAwesomeItem2 = class(TAwesomeItem) TAwesomeItem3 = class(TAwesomeItem) TAwesomeItem3a = class(TAwesomeItem3)

等等(大约30个子类,其中有一些中间抽象类)完成了一年前我实现的一些对象关系建模,期望最终从Delphi 7转换到2009(很快就是XE2).

该代码仍然适用于Delphi 2009,但我想做一个

for AwesomeItem3a in AwesomeList do begin //something awesome end;

我不知道如何重组TMyAwesomeList(或添加几个子类)来实现这一目标.

根据您的评论,您似乎可以直接使用TObjectList.

var MyAwesomeList1: TObjectList<TMyAwesomeItem1>; MyAwesomeItem1: TMyAwesomeItem1; begin MyAwesomeList1 := TObjectList<TMyAwesomeItem1>.Create; try // populate the list... for MyAwesomeItem1 in MyAwesomeList1 do ... finally MyAwesomeList1.Free; end; end;

……和TMyAwesomeItem2等相同
如果您愿意,还可以声明类型别名:

type TMyAwesomeList1 = TObjectList<TMyAwesomeItem1>; TMyAwesomeList2 = TObjectList<TMyAwesomeItem2>; // etc.

本文共计268个文字,预计阅读时间需要2分钟。

Delphi中如何将TObjectList的祖先转换为泛型集合?

我创建了一个名为TMyAwesomeList的类,它继承自TObjectList。TMyAwesomeItem是一个持久类,几乎是一个抽象类。TAwesomeItem1、TAwesomeItem2和TAwesomeItem3都是TAwesomeItem的子类。

我上了课

TMyAwesomeList = class(TObjectList)

哪个

Delphi中如何将TObjectList的祖先转换为泛型集合?

TAwesomeItem = class(TPersistent)

其中TAwesomeItem几乎是一个抽象类

TAwesomeItem1 = class(TAwesomeItem) TAwesomeItem2 = class(TAwesomeItem) TAwesomeItem3 = class(TAwesomeItem) TAwesomeItem3a = class(TAwesomeItem3)

等等(大约30个子类,其中有一些中间抽象类)完成了一年前我实现的一些对象关系建模,期望最终从Delphi 7转换到2009(很快就是XE2).

该代码仍然适用于Delphi 2009,但我想做一个

for AwesomeItem3a in AwesomeList do begin //something awesome end;

我不知道如何重组TMyAwesomeList(或添加几个子类)来实现这一目标.

根据您的评论,您似乎可以直接使用TObjectList.

var MyAwesomeList1: TObjectList<TMyAwesomeItem1>; MyAwesomeItem1: TMyAwesomeItem1; begin MyAwesomeList1 := TObjectList<TMyAwesomeItem1>.Create; try // populate the list... for MyAwesomeItem1 in MyAwesomeList1 do ... finally MyAwesomeList1.Free; end; end;

……和TMyAwesomeItem2等相同
如果您愿意,还可以声明类型别名:

type TMyAwesomeList1 = TObjectList<TMyAwesomeItem1>; TMyAwesomeList2 = TObjectList<TMyAwesomeItem2>; // etc.