git-svn-id: trunk@8986 -
This commit is contained in:
mattias 2006-03-22 18:35:10 +00:00
parent 69ecbdb9c3
commit 30f1bff9f2

View File

@ -44,8 +44,8 @@ type
ArrowDown: TArrow; ArrowDown: TArrow;
CancelButton: TBitBtn; CancelButton: TBitBtn;
OkButton: TBitBtn; OkButton: TBitBtn;
ShowOldValuesCheckbox: TCHECKBOX; ShowOldValuesCheckbox: TCheckBox;
ItemTreeview: TTREEVIEW; ItemTreeview: TTreeView;
procedure DownSpeedbuttonCLICK(Sender: TObject); procedure DownSpeedbuttonCLICK(Sender: TObject);
procedure OkButtonCLICK(Sender: TObject); procedure OkButtonCLICK(Sender: TObject);
procedure ShowOldValuesCheckboxCLICK(Sender: TObject); procedure ShowOldValuesCheckboxCLICK(Sender: TObject);
@ -62,7 +62,7 @@ type
procedure FillTree; procedure FillTree;
procedure ClearTree; procedure ClearTree;
public public
property LookupRoot: TComponent read FLookupRoot write SetLookupRoot; property LookupRoot: TComponent Read FLookupRoot Write SetLookupRoot;
end; end;
function ShowTabOrderDialog(LookupRoot: TComponent): TModalresult; function ShowTabOrderDialog(LookupRoot: TComponent): TModalresult;
@ -73,9 +73,9 @@ function ShowTabOrderDialog(LookupRoot: TComponent): TModalresult;
var var
TabOrderDialog: TTabOrderDialog; TabOrderDialog: TTabOrderDialog;
begin begin
TabOrderDialog:=TTabOrderDialog.Create(nil); TabOrderDialog := TTabOrderDialog.Create(nil);
TabOrderDialog.LookupRoot:=LookupRoot; TabOrderDialog.LookupRoot := LookupRoot;
Result:=TabOrderDialog.ShowModal; Result := TabOrderDialog.ShowModal;
TabOrderDialog.Free; TabOrderDialog.Free;
end; end;
@ -177,9 +177,10 @@ begin
ItemTreeview.BeginUpdate; ItemTreeview.BeginUpdate;
try try
ClearTree; ClearTree;
if (FLookupRoot=nil) or (not (FLookupRoot is TWinControl)) then exit; if (FLookupRoot = nil) or (not (FLookupRoot is TWinControl)) then
AControl:=TWinControl(FLookupRoot); exit;
CreateNodes(AControl,nil); AControl := TWinControl(FLookupRoot);
CreateNodes(AControl, nil);
finally finally
ItemTreeview.EndUpdate; ItemTreeview.EndUpdate;
end; end;
@ -193,40 +194,41 @@ end;
procedure TTabOrderDialog.CreateNodes(ParentControl: TWinControl; procedure TTabOrderDialog.CreateNodes(ParentControl: TWinControl;
ParentNode: TTreeNode); ParentNode: TTreeNode);
var var
i: Integer; i: integer;
AControl: TControl; AControl: TControl;
CurTab: Integer; CurTab: integer;
FirstSibling: TTreeNode; FirstSibling: TTreeNode;
NodeBehind: TTreeNode; NodeBehind: TTreeNode;
NewNode: TTreeNode; NewNode: TTreeNode;
NodeText: String; NodeText: string;
AWinControl: TWinControl; AWinControl: TWinControl;
begin begin
ItemTreeview.BeginUpdate; ItemTreeview.BeginUpdate;
if ParentNode=nil then if ParentNode = nil then
FirstSibling:=nil FirstSibling := nil
else else
FirstSibling:=ParentNode.GetFirstChild; FirstSibling := ParentNode.GetFirstChild;
for i:=0 to ParentControl.ControlCount-1 do begin for i := 0 to ParentControl.ControlCount - 1 do
AControl:=ParentControl.Controls[i]; begin
if not (AControl is TWinControl) then continue; AControl := ParentControl.Controls[i];
AWinControl:=TWinControl(AControl); if not (AControl is TWinControl) then
CurTab:=AWinControl.TabOrder; continue;
NodeBehind:=FirstSibling; AWinControl := TWinControl(AControl);
while (NodeBehind<>nil) and (TWinControl(NodeBehind.Data).TabOrder<=CurTab) CurTab := AWinControl.TabOrder;
do NodeBehind := FirstSibling;
NodeBehind:=NodeBehind.GetNextSibling; while (NodeBehind <> nil) and (TWinControl(NodeBehind.Data).TabOrder <= CurTab) do
NodeText:=AWinControl.Name; NodeBehind := NodeBehind.GetNextSibling;
NodeText := AWinControl.Name;
if ShowOldValuesCheckbox.Checked then if ShowOldValuesCheckbox.Checked then
NodeText:=NodeText+' ('+IntToStr(AWinControl.TabOrder)+')'; NodeText := NodeText + ' (' + IntToStr(AWinControl.TabOrder) + ')';
if NodeBehind<>nil then if NodeBehind <> nil then
NewNode:=ItemTreeview.Items.InsertObject(NodeBehind,NodeText,AControl) NewNode := ItemTreeview.Items.InsertObject(NodeBehind, NodeText, AControl)
else else
NewNode:=ItemTreeview.Items.AddChildObject(ParentNode,NodeText,AControl); NewNode := ItemTreeview.Items.AddChildObject(ParentNode, NodeText, AControl);
if (FirstSibling=nil) or (NewNode.GetPrevSibling=nil) then if (FirstSibling = nil) or (NewNode.GetPrevSibling = nil) then
FirstSibling:=NewNode; FirstSibling := NewNode;
CreateNodes(AWinControl,NewNode); CreateNodes(AWinControl, NewNode);
NewNode.Expanded:=true; NewNode.Expanded := True;
end; end;
ItemTreeview.EndUpdate; ItemTreeview.EndUpdate;
end; end;