From c42232d6f120b19a6e4a8d4af43f1af55e2b7d3d Mon Sep 17 00:00:00 2001 From: bart <9132501-flyingsheep@users.noreply.gitlab.com> Date: Wed, 16 Oct 2013 14:06:00 +0000 Subject: [PATCH] TreeView: Add Select methods for Deplhi compatibility. Patch by Ocean. git-svn-id: trunk@43259 - --- lcl/comctrls.pp | 3 +++ lcl/include/treeview.inc | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/lcl/comctrls.pp b/lcl/comctrls.pp index 3a2a21f36a..3b63a9848d 100644 --- a/lcl/comctrls.pp +++ b/lcl/comctrls.pp @@ -3300,6 +3300,9 @@ type procedure UnlockSelectionChangeEvent; function GetFirstMultiSelected: TTreeNode; function GetLastMultiSelected: TTreeNode; + procedure Select(Node: TTreeNode; ShiftState: TShiftState = []); + procedure Select(const Nodes: array of TTreeNode); virtual; + procedure Select(Nodes: TList); virtual; function SelectionVisible: boolean; procedure MakeSelectionVisible; procedure ClearInvisibleSelection; diff --git a/lcl/include/treeview.inc b/lcl/include/treeview.inc index 91a602966c..83d65fd9d8 100644 --- a/lcl/include/treeview.inc +++ b/lcl/include/treeview.inc @@ -5650,6 +5650,44 @@ begin Result := Items.FLastMultiSelected; end; +procedure TCustomTreeView.Select(Node: TTreeNode; ShiftState: TShiftState = []); +begin + if (tvoAllowMultiSelect in FOptions) and (ssCtrl in ShiftState) then + Node.Selected := True + else begin + ClearSelection; + Selected := Node; + if (tvoAllowMultiSelect in FOptions) then + Node.Selected := True; + end; +end; + +procedure TCustomTreeView.Select(const Nodes: array of TTreeNode); +var + I: Integer; +begin + ClearSelection; + if Length(Nodes)>0 then begin + Selected := Nodes[0]; + if tvoAllowMultiSelect in FOptions then + for I := Low(Nodes) to High(Nodes) do + Nodes[I].Selected := True; + end; +end; + +procedure TCustomTreeView.Select(Nodes: TList); +var + I: Integer; +begin + ClearSelection; + if Nodes.Count>0 then begin + Selected := TTreeNode(Nodes[0]); + if tvoAllowMultiSelect in FOptions then + for I := 0 to Nodes.Count - 1 do + TTreeNode(Nodes[I]).Selected := True; + end; +end; + function TCustomTreeView.SelectionVisible: boolean; var ANode: TTreeNode;