在 Delphi 2010 中,是否有一种方法可以遍历任何类型的索引属性(例如 TPageControl 的 Pages)?
如果我理解正确,您希望通过RTTI迭代这些属性,而不知道属性及其索引值的任何信息。由于有效的索引值不能是整数值序列,因此这是不可能的。可能会有具有字符串索引或对象引用作为索引值的属性。并且在RTTI中没有机制来查询可用于迭代的有效索引值。
不,这是不可能的,因为没有标准模式:
这就是为什么某些类有枚举器:它是告诉 for ... in 语句如何枚举它的模式。
然而,您可以做出最佳估计:
最后,可以使用类助手(如果底层类型是记录,则使用记录助手)"retrofit" TPageControl with a GetEnumertor。
ActivePageIndex
不是一个索引属性。 - David Heffernan