TreeFilterEdit: Improve TTreeFilterBranch.RemoveChildrenData logic. Issue #25259, patch from Cyrax

git-svn-id: trunk@43344 -
This commit is contained in:
juha 2013-10-30 22:55:22 +00:00
parent 75b3da80b2
commit 95fe4e6ff1

View File

@ -347,17 +347,21 @@ Begin
end; end;
procedure TTreeFilterBranch.RemoveChildrenData(ARootNode : TTreeNode); procedure TTreeFilterBranch.RemoveChildrenData(ARootNode : TTreeNode);
Var
ANode : TTreeNode; procedure ProcessSubNodes(ANode : TTreeNode);
Begin Var
ANode := NIL; BNode : TTreeNode;
FreeNodeData(ARootNode); begin
If Assigned(ARootNode) Then
ANode := ARootNode.GetFirstChild;
While Assigned(ANode) Do Begin
FreeNodeData(ANode); FreeNodeData(ANode);
ANode := ANode.GetNextSibling; BNode := ANode.GetFirstChild;
While Assigned(BNode) Do Begin
ProcessSubNodes(BNode);
BNode := BNode.GetNextSibling;
end;
end; end;
Begin
ProcessSubNodes(ARootNode);
end; end;
procedure TTreeFilterBranch.Clear; procedure TTreeFilterBranch.Clear;