mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-17 22:59:15 +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 GetLastChild: TTreeNode;
|
||||||
function GetLastSubChild: TTreeNode;
|
function GetLastSubChild: TTreeNode;
|
||||||
function GetNext: TTreeNode;
|
function GetNext: TTreeNode;
|
||||||
|
function GetNextSkipChildren: TTreeNode;
|
||||||
function GetNextChild(AValue: TTreeNode): TTreeNode;
|
function GetNextChild(AValue: TTreeNode): TTreeNode;
|
||||||
function GetNextExpanded: TTreeNode;
|
function GetNextExpanded: TTreeNode;
|
||||||
function GetNextMultiSelected: TTreeNode;
|
function GetNextMultiSelected: TTreeNode;
|
||||||
@ -2838,8 +2839,8 @@ type
|
|||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
procedure Clear;
|
procedure Clear;
|
||||||
procedure CreateChildNodes(FirstTreeNode: TTreeNode);
|
procedure CreateChildNodes(FirstTreeNode: TTreeNode);
|
||||||
procedure Apply(FirstTreeNode: TTreeNode);
|
procedure Apply(FirstTreeNode: TTreeNode; CollapseToo: boolean = true);
|
||||||
procedure Apply(TreeView: TCustomTreeView);
|
procedure Apply(TreeView: TCustomTreeView; CollapseToo: boolean = true);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
@ -222,7 +222,8 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TTreeNodeExpandedState.Apply(FirstTreeNode: TTreeNode);
|
procedure TTreeNodeExpandedState.Apply(FirstTreeNode: TTreeNode;
|
||||||
|
CollapseToo: boolean);
|
||||||
var
|
var
|
||||||
ChildNode: TTreeNode;
|
ChildNode: TTreeNode;
|
||||||
ANode: TAvgLvlTreeNode;
|
ANode: TAvgLvlTreeNode;
|
||||||
@ -233,16 +234,20 @@ begin
|
|||||||
while ChildNode<>nil do begin
|
while ChildNode<>nil do begin
|
||||||
ChildNodeText:=ChildNode.Text;
|
ChildNodeText:=ChildNode.Text;
|
||||||
ANode:=Children.FindKey(PChar(ChildNodeText),@CompareTextWithExpandedNode);
|
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
|
if ANode<>nil then
|
||||||
TTreeNodeExpandedState(ANode.Data).Apply(ChildNode.GetFirstChild);
|
TTreeNodeExpandedState(ANode.Data).Apply(ChildNode.GetFirstChild);
|
||||||
ChildNode:=ChildNode.GetNextSibling;
|
ChildNode:=ChildNode.GetNextSibling;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TTreeNodeExpandedState.Apply(TreeView: TCustomTreeView);
|
procedure TTreeNodeExpandedState.Apply(TreeView: TCustomTreeView;
|
||||||
|
CollapseToo: boolean);
|
||||||
begin
|
begin
|
||||||
Apply(TreeView.Items.GetFirstNode);
|
Apply(TreeView.Items.GetFirstNode,CollapseToo);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TTreeNode }
|
{ TTreeNode }
|
||||||
@ -921,13 +926,15 @@ end;
|
|||||||
function TTreeNode.GetNext: TTreeNode;
|
function TTreeNode.GetNext: TTreeNode;
|
||||||
begin
|
begin
|
||||||
Result:=GetFirstChild;
|
Result:=GetFirstChild;
|
||||||
if Result=nil then begin
|
if Result=nil then Result:=GetNextSkipChildren;
|
||||||
// no children, search next
|
end;
|
||||||
Result:=Self;
|
|
||||||
while (Result<>nil) and (Result.FNextBrother=nil) do
|
function TTreeNode.GetNextSkipChildren: TTreeNode;
|
||||||
Result:=Result.Parent;
|
begin
|
||||||
if Result<>nil then Result:=Result.FNextBrother;
|
Result:=Self;
|
||||||
end;
|
while (Result<>nil) and (Result.FNextBrother=nil) do
|
||||||
|
Result:=Result.Parent;
|
||||||
|
if Result<>nil then Result:=Result.FNextBrother;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TTreeNode.GetPrev: TTreeNode;
|
function TTreeNode.GetPrev: TTreeNode;
|
||||||
|
Loading…
Reference in New Issue
Block a user