Designer: Make the link between designer and TabOrder dialog work both ways.

git-svn-id: trunk@52631 -
This commit is contained in:
juha 2016-07-05 18:02:14 +00:00
parent df4030e5cf
commit fd107ecf9e
2 changed files with 18 additions and 9 deletions

View File

@ -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

View File

@ -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,10 +199,19 @@ begin
CheckButtonsEnabled;
end;
procedure TTabOrderDialog.ItemTreeviewClick(Sender: TObject);
procedure TTabOrderDialog.ItemTreeviewSelectionChanged(Sender: TObject);
var
Node: TTreeNode;
begin
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);
var
@ -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
@ -423,6 +434,7 @@ begin
Node := Node.GetNext;
end;
ItemTreeview.EndUpdate;
FUpdating := False;
CheckButtonsEnabled;
end;