Mit folgenden Proceduren kann man alle Komponenten und Controls als Baum in einem TreeView anzeigen.
Damit man sich das besser vorstellen kann, sind zwei Screenshots im Anhang.
Gerade bei grösseren Formularen oder Anwendung ist es interessant oder nützlich die ganzen Komponenten und Controls sich anzeigen zu lassen.
Delphi-Quellcode:
// Hilfsfunktion
function GetComponentName(c: TComponent): string;
begin
Result := c.Name;
if Result = '' then
begin
Result := '0x' + Format('%.8x',[Integer(c)]);
end;
end;
procedure BuildComponentTree(c:TComponent; tn:TTreeNodes);
procedure AddComponent(n: TTreeNode; nodes:TTreeNodes;c: TComponent);
var
n1: TTreeNode;
i: Integer;
begin
n1 := nodes.AddChildObject(n,GetComponentName(c)+': '+c.ClassName,Pointer(c));
for i := 0 to c.ComponentCount-1 do
begin
AddComponent(n1, nodes,c.Components[i]);
end;
end;
begin
AddComponent(nil, tn, c);
end;
procedure BuildControlTree(c: TControl; tn:TTreeNodes);
procedure AddControl(n: TTreeNode; nodes:TTreeNodes;c: TControl);
var
n1: TTreeNode;
i: Integer;
begin
n1 := nodes.AddChildObject(n,GetComponentName(c)+': '+c.ClassName,Pointer(c));
if c is TWinControl then
begin
for i := 0 to TWinControl(c).ControlCount-1 do
begin
AddControl(n1, nodes,TWinControl(c).Controls[i]);
end;
end;
end;
begin
AddControl(nil, tn, c);
end;