mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-17 05:49:23 +02:00
LCL: TTreeView: added TTreeNode.GetNextSkipChildren
git-svn-id: trunk@30785 -
This commit is contained in:
parent
f99cfe3556
commit
25cc1acf65
@ -2171,6 +2171,7 @@ type
|
||||
function GetLastChild: TTreeNode;
|
||||
function GetLastSubChild: TTreeNode;
|
||||
function GetNext: TTreeNode;
|
||||
function GetNextSkipChildren: TTreeNode;
|
||||
function GetNextChild(AValue: TTreeNode): TTreeNode;
|
||||
function GetNextExpanded: TTreeNode;
|
||||
function GetNextMultiSelected: TTreeNode;
|
||||
@ -2838,8 +2839,8 @@ type
|
||||
destructor Destroy; override;
|
||||
procedure Clear;
|
||||
procedure CreateChildNodes(FirstTreeNode: TTreeNode);
|
||||
procedure Apply(FirstTreeNode: TTreeNode);
|
||||
procedure Apply(TreeView: TCustomTreeView);
|
||||
procedure Apply(FirstTreeNode: TTreeNode; CollapseToo: boolean = true);
|
||||
procedure Apply(TreeView: TCustomTreeView; CollapseToo: boolean = true);
|
||||
end;
|
||||
|
||||
|
||||
|
@ -222,7 +222,8 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TTreeNodeExpandedState.Apply(FirstTreeNode: TTreeNode);
|
||||
procedure TTreeNodeExpandedState.Apply(FirstTreeNode: TTreeNode;
|
||||
CollapseToo: boolean);
|
||||
var
|
||||
ChildNode: TTreeNode;
|
||||
ANode: TAvgLvlTreeNode;
|
||||
@ -233,16 +234,20 @@ begin
|
||||
while ChildNode<>nil do begin
|
||||
ChildNodeText:=ChildNode.Text;
|
||||
ANode:=Children.FindKey(PChar(ChildNodeText),@CompareTextWithExpandedNode);
|
||||
ChildNode.Expanded:=ANode<>nil;
|
||||
if ANode<>nil then
|
||||
ChildNode.Expanded:=true
|
||||
else if CollapseToo then
|
||||
ChildNode.Expanded:=false;
|
||||
if ANode<>nil then
|
||||
TTreeNodeExpandedState(ANode.Data).Apply(ChildNode.GetFirstChild);
|
||||
ChildNode:=ChildNode.GetNextSibling;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TTreeNodeExpandedState.Apply(TreeView: TCustomTreeView);
|
||||
procedure TTreeNodeExpandedState.Apply(TreeView: TCustomTreeView;
|
||||
CollapseToo: boolean);
|
||||
begin
|
||||
Apply(TreeView.Items.GetFirstNode);
|
||||
Apply(TreeView.Items.GetFirstNode,CollapseToo);
|
||||
end;
|
||||
|
||||
{ TTreeNode }
|
||||
@ -921,13 +926,15 @@ end;
|
||||
function TTreeNode.GetNext: TTreeNode;
|
||||
begin
|
||||
Result:=GetFirstChild;
|
||||
if Result=nil then begin
|
||||
// no children, search next
|
||||
Result:=Self;
|
||||
while (Result<>nil) and (Result.FNextBrother=nil) do
|
||||
Result:=Result.Parent;
|
||||
if Result<>nil then Result:=Result.FNextBrother;
|
||||
end;
|
||||
if Result=nil then Result:=GetNextSkipChildren;
|
||||
end;
|
||||
|
||||
function TTreeNode.GetNextSkipChildren: TTreeNode;
|
||||
begin
|
||||
Result:=Self;
|
||||
while (Result<>nil) and (Result.FNextBrother=nil) do
|
||||
Result:=Result.Parent;
|
||||
if Result<>nil then Result:=Result.FNextBrother;
|
||||
end;
|
||||
|
||||
function TTreeNode.GetPrev: TTreeNode;
|
||||
|
Loading…
Reference in New Issue
Block a user