大佬教程收集整理的这篇文章主要介绍了delphi – 通过树视图中的节点递归迭代?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我该怎么做呢?我希望有一种方法可以在不运行递归程序的情况下完成.当我遍历这些项目时,我不一定关心当前聚焦的父节点或子节点.我只需要能够在传递它们时读取每个节点的Data属性,并在我浏览时突出显示树视图中的当前节点.对于此树视图中的每个项目,我将执行一些工作,并希望在此过程中直观地向用户显示当前选择的项目.
var Node: TTreeNode; .... for Node in TreeView.Items do DoSomething(NodE);
这是语法糖:
for i := 0 to TreeView.Items.Count-1 do DoSomething(TreeView.Items[i]);
在可读性方面,我建议使用for / in循环.
在不支持节点迭代器的较旧的Delphi版本中,您可能更喜欢使用while循环.
Node := TreeView.Items.GetFirstNode; while Assigned(NodE) do begin DoSomething(NodE); Node := Node.GetNext; end;
我希望还有其他方法可以做到这一点.这是我所知道的唯一!
LU RD对documentation的有趣观察结果表明:
这是真的.对于随机访问,代码必须从根开始遍历树,直到找到第i个节点.
但是,对顺序访问进行了优化. Delphi树视图包装器会记住索引所在的最后一个节点的索引.下次请求索引与缓存节点的索引不超过一个的节点时,可以快速返回所需的节点.这是在TTreeNodes.GetNodeFromIndex中实现的.
以上是大佬教程为你收集整理的delphi – 通过树视图中的节点递归迭代?全部内容,希望文章能够帮你解决delphi – 通过树视图中的节点递归迭代?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。