Einzelnen Beitrag anzeigen

omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: TreeView: Inhalt der Nodes auslesen, die keine Childs ha

  Alt 19. Dez 2008, 23:33
Das Zauberwort heißt Rekursion...
Delphi-Quellcode:
procedure GetChilds(Node:TTreeNode; NodeList:TList);
var Child:TTreeNode;
begin
  if assigned(Node) then begin
    if Node.HasChildren then begin
      Child:=Node.getFirstChild;
      repeat
        GetChilds(Child, NodeList);
        Child:=Child.getNextSibling;
      until not assigned(Child);
    end
    else NodeList.Add(Node);
  end;
end;
Aufruf...
Delphi-Quellcode:
procedure TForm.ButtonClick(Sender: TObject);
var List:TList;
    i:integer;
begin
  List:=TList.Create;
  try
    GetChilds(TreeView.Items.GetFirstNode, List);
    Memo.Lines.Clear;
    for i:=1 to List.Count do
      Memo.Lines.Append(TTreeNode(List[i-1]).Text);
  finally
    List.free;
  end;
end;
Edit: Oh, es geht ja nur um den Inhalt...
Delphi-Quellcode:
procedure GetChilds(Node:TTreeNode; List:TStrings);
var Child:TTreeNode;
begin
  if assigned(Node) then begin
    if Node.HasChildren then begin
      Child:=Node.getFirstChild;
      repeat
        GetChilds(Child, List);
        Child:=Child.getNextSibling;
      until not assigned(Child);
    end
    else List.Append(Node.Text);
  end;
end;
Aufruf...
Delphi-Quellcode:
procedure TForm.ButtonClick(Sender: TObject);
begin
  GetChilds(TreeView.Items.GetFirstNode, Memo.Lines);
end;
  Mit Zitat antworten Zitat