From fd107ecf9e3a752d2a93047b52d46e50ee5de38a Mon Sep 17 00:00:00 2001 From: juha Date: Tue, 5 Jul 2016 18:02:14 +0000 Subject: [PATCH] Designer: Make the link between designer and TabOrder dialog work both ways. git-svn-id: trunk@52631 - --- designer/taborderdlg.lfm | 7 ++----- designer/taborderdlg.pas | 20 ++++++++++++++++---- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/designer/taborderdlg.lfm b/designer/taborderdlg.lfm index 54cd4d11d4..1b214c1f0c 100644 --- a/designer/taborderdlg.lfm +++ b/designer/taborderdlg.lfm @@ -9,7 +9,7 @@ object TabOrderDialog: TTabOrderDialog ClientWidth = 310 OnCreate = TabOrderDialogCREATE OnShow = FormShow - LCLVersion = '0.9.31' + LCLVersion = '1.7' Visible = True object ArrowUp: TSpeedButton AnchorSideRight.Control = Owner @@ -20,7 +20,6 @@ object TabOrderDialog: TTabOrderDialog Width = 25 Anchors = [akTop, akRight] BorderSpacing.Around = 6 - NumGlyphs = 0 OnClick = UpSpeedbuttonCLICK ShowHint = True ParentShowHint = False @@ -34,7 +33,6 @@ object TabOrderDialog: TTabOrderDialog Width = 25 Anchors = [akTop, akRight] BorderSpacing.Around = 6 - NumGlyphs = 0 OnClick = DownSpeedbuttonCLICK ShowHint = True ParentShowHint = False @@ -48,13 +46,12 @@ object TabOrderDialog: TTabOrderDialog Width = 267 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Around = 6 - DefaultItemHeight = 16 HideSelection = False ReadOnly = True RightClickSelect = True TabOrder = 0 - OnClick = ItemTreeviewClick OnKeyDown = ItemTreeviewKeyDown + OnSelectionChanged = ItemTreeviewSelectionChanged Options = [tvoAutoItemHeight, tvoKeepCollapsedNodes, tvoReadOnly, tvoRightClickSelect, tvoShowButtons, tvoShowLines, tvoShowRoot, tvoToolTips] end object SortByPositionButton: TBitBtn diff --git a/designer/taborderdlg.pas b/designer/taborderdlg.pas index cd5e61be58..66361497c0 100644 --- a/designer/taborderdlg.pas +++ b/designer/taborderdlg.pas @@ -44,9 +44,9 @@ type ArrowUp: TSpeedButton; ItemTreeview: TTreeView; SortByPositionButton: TBitBtn; + procedure ItemTreeviewSelectionChanged(Sender: TObject); procedure SortByPositionButtonClick(Sender: TObject); procedure FormShow(Sender: TObject); - procedure ItemTreeviewClick(Sender: TObject); procedure TabOrderDialogCreate(Sender: TObject); procedure UpSpeedbuttonClick(Sender: TObject); procedure DownSpeedbuttonClick(Sender: TObject); @@ -199,9 +199,18 @@ begin CheckButtonsEnabled; end; -procedure TTabOrderDialog.ItemTreeviewClick(Sender: TObject); +procedure TTabOrderDialog.ItemTreeviewSelectionChanged(Sender: TObject); +var + Node: TTreeNode; begin - CheckButtonsEnabled; + if FUpdating then Exit; + Node := ItemTreeview.Selected; + if Assigned(Node) then begin + FUpdating := True; + GlobalDesignHook.SelectOnlyThis(TPersistent(Node.Data)); + FUpdating := False; + CheckButtonsEnabled; + end; end; procedure TTabOrderDialog.UpSpeedbuttonClick(Sender: TObject); @@ -409,6 +418,8 @@ var Node: TTreeNode; begin // ToDo: support also multiply selections. + if FUpdating then Exit; + FUpdating := True; ItemTreeview.BeginUpdate; Node := ItemTreeview.Items.GetFirstNode; while Assigned(Node) do begin @@ -420,9 +431,10 @@ begin Break; end; end; - Node:=Node.GetNext; + Node := Node.GetNext; end; ItemTreeview.EndUpdate; + FUpdating := False; CheckButtonsEnabled; end;