【发布时间】:2014-03-27 22:31:37
【问题描述】:
使用 DELPHI 对象列表,我存储对 Tforms 类项的引用。在创建表单并将其插入该列表后,还会执行一些删除 .... 和其他处理步骤。 经过一段时间后,我需要评估我的对象列表的内容。
aForm1 : TMyForm_1 ;
aForm2 : TMyForm_1 ;
aForm3 : TMyForm_1 ;
MyObjectList := TObjectList.create;
....
MyObjectList.add(aForm1) ; // and also the other forms , many time each ...
我的列表中还有多少 TMyform_1 类型的表单实例? 循环所有列表元素并检查类类型是我解决该任务的想法
for i := 0 ....
if (MyObjectList.items[i] is TMyForm_1) ...
有没有更优雅的方法来解决这个问题? 我只需要知道我的列表中有一个 TMyForm_1 类型,第二个给我第一个位置,最后从这个位置...转到这个列表中的下一个元素。
【问题讨论】:
-
您是否有充分的理由使用旧版
TObjectList而不是类型安全的通用TObjectList<T>或TList<T>? -
我很好奇。为什么在一个对象列表中有多个相同表单的实例?
-
@Andy_D 我猜是因为它可能是一些编辑表单或类似的东西,您可以在其中编辑多个实例?
-
请注意,您的程序已经保存了程序中所有表单的列表。见
Screen.Forms。 -
再一次,你的最终目标是什么?您是否要根据表单类型对所有表单执行特殊操作?那么存在更好的解决方案来解决这个问题,但你必须提出正确的问题......
标签: delphi