在 Delphi 2010 中有没有办法遍历任何类型的索引属性(例如 TPageControl 的页面)?
问问题
745 次
2 回答
2
如果我理解正确,您想通过 RTTI 遍历这些属性,而不需要对属性及其索引值一无所知。因为有效的索引值不能是整数值序列,所以这是不可能的。可能存在带有字符串索引或对象引用作为索引值的属性。RTTI 中没有任何机制可以查询可用于迭代的有效索引值。
于 2011-10-31T10:53:22.617 回答
1
不,这是不可能的,因为没有标准模式:
- 指定索引类型
- 指定要使用的索引的开始值和结束值
这就是为什么某些类有枚举器:它是告诉 for ... in 语句如何枚举它的模式。
但是,您可以做的是最好的估计:
- 大多数时候索引是整数
- 大多数时候索引从零开始
- 大多数时候有一个属性 Count 或 Length 告诉您如何获取最终值
最后,可以使用类助手(如果基础类型是记录,则使用记录助手)将TPageControl 与 GetEnumertor 一起“改造” 。
于 2011-10-31T15:06:49.260 回答