Thema: Delphi GetNext implementieren

Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: GetNext implementieren

  Alt 9. Okt 2006, 08:45
Guten Morgen Frank.

Um deine Baumstruktur rekursiv in eine TreeView zu laden genügt es, wenn die Laderoutine rekursiv ist. Deine Komponente muss lediglich eine Möglichkeit zur Iteration über die Unterkomponenten anbieten - und das tut sie ja auch ohne GetNext().

Delphi-Quellcode:
procedure AddNodes(nodes: TTreeNodes; nParent: TTreeNode; ciRoot: TCompInfo);
var
  i: Integer;
  ci: TCompInfo;
  tn: TTreeNode;
begin
  with ciRoot.Components do
    for i := 0 to Pred(Count) do
    begin
      ci := Items[i];
      tn := nodes.AddChildObject(nParent, DisplayName(ci), ci);
      AddNodes(nodes, tn, ci);
    end;
end;
In der Funktion DisplayName() kannst du den Anzeigenamen für die jeweilige Komponente erzeugen. Der Aufruf könnte so aussehen:

Delphi-Quellcode:
begin
  with TreeView do
  begin
    Items.BeginUpdate;
    Items.Clear;
    AddNodes(Items, nil, rootComp);
    Items.EndUpdate;
  end;
end;
Alles nur getippt und nicht getestet.

Grüße vom marabu
  Mit Zitat antworten Zitat