Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Neuen Beitrag zur Code-Library hinzufügen (https://www.delphipraxis.net/33-neuen-beitrag-zur-code-library-hinzufuegen/)
-   -   Delphi Komponenten und Controls als Baum anzeigen (https://www.delphipraxis.net/149663-komponenten-und-controls-als-baum-anzeigen.html)

shmia 26. Mär 2010 16:55


Komponenten und Controls als Baum anzeigen
 
Liste der Anhänge anzeigen (Anzahl: 3)
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;

Bernhard Geyer 26. Mär 2010 17:27

Re: Komponenten und Controls als Baum anzeigen
 
Zitat:

Zitat von shmia
Gerade bei grösseren Formularen oder Anwendung ist es interessant oder nützlich die ganzen Komponenten und Controls sich anzeigen zu lassen.

Ab D6 kann das die IDE von sich aus.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:20 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz