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,19 +347,23 @@ Begin
end; end;
procedure TTreeFilterBranch.RemoveChildrenData(ARootNode : TTreeNode); procedure TTreeFilterBranch.RemoveChildrenData(ARootNode : TTreeNode);
procedure ProcessSubNodes(ANode : TTreeNode);
Var Var
ANode : TTreeNode; BNode : TTreeNode;
Begin begin
ANode := NIL;
FreeNodeData(ARootNode);
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; end;
Begin
ProcessSubNodes(ARootNode);
end;
procedure TTreeFilterBranch.Clear; procedure TTreeFilterBranch.Clear;
Begin Begin
RemoveChildrenData(fRootNode); RemoveChildrenData(fRootNode);