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 ClientWidth = 310
OnCreate = TabOrderDialogCREATE OnCreate = TabOrderDialogCREATE
OnShow = FormShow OnShow = FormShow
LCLVersion = '0.9.31' LCLVersion = '1.7'
Visible = True Visible = True
object ArrowUp: TSpeedButton object ArrowUp: TSpeedButton
AnchorSideRight.Control = Owner AnchorSideRight.Control = Owner
@ -20,7 +20,6 @@ object TabOrderDialog: TTabOrderDialog
Width = 25 Width = 25
Anchors = [akTop, akRight] Anchors = [akTop, akRight]
BorderSpacing.Around = 6 BorderSpacing.Around = 6
NumGlyphs = 0
OnClick = UpSpeedbuttonCLICK OnClick = UpSpeedbuttonCLICK
ShowHint = True ShowHint = True
ParentShowHint = False ParentShowHint = False
@ -34,7 +33,6 @@ object TabOrderDialog: TTabOrderDialog
Width = 25 Width = 25
Anchors = [akTop, akRight] Anchors = [akTop, akRight]
BorderSpacing.Around = 6 BorderSpacing.Around = 6
NumGlyphs = 0
OnClick = DownSpeedbuttonCLICK OnClick = DownSpeedbuttonCLICK
ShowHint = True ShowHint = True
ParentShowHint = False ParentShowHint = False
@ -48,13 +46,12 @@ object TabOrderDialog: TTabOrderDialog
Width = 267 Width = 267
Anchors = [akTop, akLeft, akRight, akBottom] Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Around = 6 BorderSpacing.Around = 6
DefaultItemHeight = 16
HideSelection = False HideSelection = False
ReadOnly = True ReadOnly = True
RightClickSelect = True RightClickSelect = True
TabOrder = 0 TabOrder = 0
OnClick = ItemTreeviewClick
OnKeyDown = ItemTreeviewKeyDown OnKeyDown = ItemTreeviewKeyDown
OnSelectionChanged = ItemTreeviewSelectionChanged
Options = [tvoAutoItemHeight, tvoKeepCollapsedNodes, tvoReadOnly, tvoRightClickSelect, tvoShowButtons, tvoShowLines, tvoShowRoot, tvoToolTips] Options = [tvoAutoItemHeight, tvoKeepCollapsedNodes, tvoReadOnly, tvoRightClickSelect, tvoShowButtons, tvoShowLines, tvoShowRoot, tvoToolTips]
end end
object SortByPositionButton: TBitBtn object SortByPositionButton: TBitBtn

View File

@ -44,9 +44,9 @@ type
ArrowUp: TSpeedButton; ArrowUp: TSpeedButton;
ItemTreeview: TTreeView; ItemTreeview: TTreeView;
SortByPositionButton: TBitBtn; SortByPositionButton: TBitBtn;
procedure ItemTreeviewSelectionChanged(Sender: TObject);
procedure SortByPositionButtonClick(Sender: TObject); procedure SortByPositionButtonClick(Sender: TObject);
procedure FormShow(Sender: TObject); procedure FormShow(Sender: TObject);
procedure ItemTreeviewClick(Sender: TObject);
procedure TabOrderDialogCreate(Sender: TObject); procedure TabOrderDialogCreate(Sender: TObject);
procedure UpSpeedbuttonClick(Sender: TObject); procedure UpSpeedbuttonClick(Sender: TObject);
procedure DownSpeedbuttonClick(Sender: TObject); procedure DownSpeedbuttonClick(Sender: TObject);
@ -199,9 +199,18 @@ begin
CheckButtonsEnabled; CheckButtonsEnabled;
end; end;
procedure TTabOrderDialog.ItemTreeviewClick(Sender: TObject); procedure TTabOrderDialog.ItemTreeviewSelectionChanged(Sender: TObject);
var
Node: TTreeNode;
begin begin
if FUpdating then Exit;
Node := ItemTreeview.Selected;
if Assigned(Node) then begin
FUpdating := True;
GlobalDesignHook.SelectOnlyThis(TPersistent(Node.Data));
FUpdating := False;
CheckButtonsEnabled; CheckButtonsEnabled;
end;
end; end;
procedure TTabOrderDialog.UpSpeedbuttonClick(Sender: TObject); procedure TTabOrderDialog.UpSpeedbuttonClick(Sender: TObject);
@ -409,6 +418,8 @@ var
Node: TTreeNode; Node: TTreeNode;
begin begin
// ToDo: support also multiply selections. // ToDo: support also multiply selections.
if FUpdating then Exit;
FUpdating := True;
ItemTreeview.BeginUpdate; ItemTreeview.BeginUpdate;
Node := ItemTreeview.Items.GetFirstNode; Node := ItemTreeview.Items.GetFirstNode;
while Assigned(Node) do begin while Assigned(Node) do begin
@ -420,9 +431,10 @@ begin
Break; Break;
end; end;
end; end;
Node:=Node.GetNext; Node := Node.GetNext;
end; end;
ItemTreeview.EndUpdate; ItemTreeview.EndUpdate;
FUpdating := False;
CheckButtonsEnabled; CheckButtonsEnabled;
end; end;