在Delphi 2010中,是否有一种方法可以遍历任何类型的索引属性(例如TPageControl的页面)?在Delphi 2010中通过索引属性进行迭代
回答
不,这是不可能的,因为没有这个标准模式:
- 指定索引类型
- 指定索引的开始和结束值使用
这为什么某些类具有枚举数:它是告诉for ...在声明中如何列举它的模式。
什么但是你可以做的是最好的估计:
- 次数最多的指数是整数
- 次数最多的指数在零
- 次数最多的启动有一个属性Count或长度告诉你如何获得最终值
最后,有可能"retrofit" TPageControl with a GetEnumertor using class helpers(或记录助手,如果基础类型是记录)。
当我在网上搜索时,我确实看到了你的帖子(好东西),试图找到这个答案:)在我的情况下,我有不同组件的六个索引属性。我遍历它们只是为了得到一个“Caption”属性。所以,现在,我有六个几乎相同的循环,我不喜欢那样。尽管GetEnumerator很酷,但对于这样一个小问题来说代码太多了。 –
如何将这些循环抽象为一些泛型代码,然后向它传递一个匿名方法,该方法包含非相同的代码? –
如果我正确理解你,你想通过RTTI遍历这些属性,而无需知道任何关于属性及其索引值。 因为有效索引值不能是一个整数值序列,所以这是不可能的。可能有字符串索引或对象引用作为索引值的属性。 RTTI中没有机制来查询可用于迭代的有效索引值。
- 1. 通过类属性迭代
- 2. Visual Basic 2010:通过具有类似名称的属性进行迭代?
- 3. 通过属性文件中的SOAP请求进行迭代
- 4. 通过嵌套tuple的索引对2d元组进行迭代
- 5. 通过stdClass进行迭代
- 6. 通过xmltextreader进行迭代
- 7. 通过模型的属性进行绑定迭代
- 8. 通过数组和具有属性的对象进行迭代
- 9. 通过具有特定属性的字段进行迭代
- 10. 如何通过对象的嵌套属性进行迭代
- 11. 仅通过现有对象属性进行迭代,而不是从父类中进行迭代?
- 12. 通过IList动态属性迭代
- 13. 通过tablib属性图迭代
- 14. C#迭代通过类属性
- 15. 通过对象属性/键迭代
- 16. Delphi 2010 RTTI - 我如何获得索引属性列表?
- 17. 通过2d向量行进行迭代
- 18. 如何通过Python中的已排序迭代进行迭代
- 19. 的Neo4j:通过关系的收集和设置属性迭代索引
- 20. 通过Appnengine中的引用属性进行过滤
- 21. 使用索引对迭代IntStream进行迭代
- 22. 通过dynamcaly生成的索引在numpy ndarray中进行索引
- 23. 通过选择选项进行迭代
- 24. 通过USB驱动器进行迭代
- 25. 通过多个div ID进行迭代
- 26. 通过2D切片进行迭代
- 27. 通过列表进行迭代
- 28. 通过多个列表进行迭代
- 29. 通过词典词典进行迭代
- 30. 通过AJAX响应进行迭代
@TLame'ActivePageIndex'不是索引属性。 –
我不明白你的评论,相当冒犯的方式...我没有说任何关于ActivePageIndex,我不知道你在哪里看到它。我说页面。 –
我认为你指的是删除的评论 –