Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#1

Komponenten und Controls als Baum anzeigen

  Alt 26. Mär 2010, 17:55
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;
Miniaturansicht angehängter Grafiken
controlbaum_188.gif   komponentenbaum_124.gif  
Angehängte Dateien
Dateityp: zip componentcontroltree_360.zip (1,9 KB, 7x aufgerufen)
Andreas
  Mit Zitat antworten Zitat