仅仅十几行代码实现对TreeView的遍历
来源:互联网 发布:复光直流护眼灯 知乎 编辑:程序博客网 时间:2024/06/14 08:46
原著作者 魅魂^.^CAD 2011-07-07
摘 要:对TreeView的某个节点遍历
function TForm1.ErgodicTreeView(node:TTreenode):TTreenode;
begin
while node<>nil do
begin
if node.HasChildren then
begin
node:=node.getFirstChild;
ErgodicTreeView(node);
node:=node.Parent;
end;
if ANode = BackupNode then //BackupNode 为传入的节点备份,少了这句就不行了
Exit;
if node.getNextSibling<>nil then
node:=node.getNextSibling
else
exit;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
BackupNode :TTreenode;
begin
BackupNode :=Mytreeview.Items.GetFirstNode;
ErgodicTreeView(BackupNode);
end;
------------------------------------------------------
遍历TreeView的方法有很多,我经过反复编程实现,上面是我用最少的代码实现TreeView的遍历。效果还不错。
利用这个对所有节点的遍历,我们可以很方便的对所有节点进行各种操作。例如:统计每层节点的个数、对
满足要求的节点进行操作、等等。
function ErgodicTreeNode(ANode: TTreeNode; var JidList: TStringList): TStringList;
var
NodeItem: TOrgItem;
begin
try
if not Assigned(ANode) then
Exit;
while ANode <> nil do
begin
if ANode.HasChildren then
begin
ANode:=ANode.getFirstChild;
ErgodicTreeNode(ANode, JidList);
ANode:=ANode.Parent;
end;
NodeItem := TOrgItem(ANode.Data);
if Assigned(NodeItem) then
begin
//如果不是个人信息节点则不添加
if (NodeItem.Itemtype = 2) and (NodeItem.Jid <> '')then
begin
JidList.Add(NodeItem.Jid);
Result := JidList;
end;
end;
if ANode = FSelectedNode then //FSelectedNode 为传入的备份,少了这句就不行了
Exit;
if ANode.getNextSibling <> nil then
begin
ANode:=ANode.getNextSibling;
end
else
exit;
end;
except
end;
end;
- 仅仅十几行代码实现对TreeView的遍历
- 实现对TreeView的遍历
- JS实现对TreeView的全选
- treeview的遍历
- 对Android TreeView 的实现,目录结构的实现
- 对TreeView的Review_1
- sqlserver实现对TreeView节点上下移动的排序功能
- TreeView 树的查找/遍历
- TreeView遍历上面的CheckBoxs
- treeview的一段代码
- TreeView 全选的代码
- 客户端代码实现无刷新TreeView的复选框多选
- ASP.NET实现TreeView的XML数据源绑定实例代码
- git commit 仅仅对“暂存区”的内容有效
- 如何实现经度纬度到平面坐标的相互转换? 仅仅4句代码就可以解决!
- vb.net递归遍历操作TreeView控件树的实例代码
- 遍历TreeView
- 遍历 Treeview
- orcale 9i连接10G
- ffmpeg tutorial Ubuntu10.10可运行版本 04
- oracle hints的用法总结
- ffmpeg tutorial Ubuntu10.10可运行版本 05
- php Ajax Post 传值
- 仅仅十几行代码实现对TreeView的遍历
- 从零开始Android游戏编程(第二版)链接
- IphoneUI那些细节
- 如何为电源选择正确的工作频率
- Jquery操作Cookie|多个输入框同时输入效果|下拉列表经典例子
- Android开发项目中文件目录结构
- 学习ffmpeg tutoial
- CSS垂直显示文字1
- Java控制台输入