Einzelnen Beitrag anzeigen

Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#8

Re: nonVCL Treeview rekursiv durchgehen

  Alt 4. Jul 2007, 13:54
getnextitem holt sich also den nächsten childnode. ich hatte gedacht er geht die items durch wie beim getnext von ttreenode. damit würden die knoten der reihe nach durchlaufen...
Root,Item1,Item1_1,Item2,Item2_1
.. und du bräuchtest nicht die seiblings extra durchlaufen...

Delphi-Quellcode:
function TTreeNode.GetNext: TTreeNode;
var
  NodeID, ParentID: HTreeItem;
begin
  Result := nil;
  if (Handle <> 0) and (ItemId <> nil) then
  begin
    NodeID := TreeView_GetChild(Handle, ItemId);
    if NodeID = nil then
      NodeID := TreeView_GetNextSibling(Handle, ItemId);
    ParentID := ItemId;
    while (NodeID = nil) and (ParentID <> nil) do
    begin
      ParentID := TreeView_GetParent(Handle, ParentID);
      NodeID := TreeView_GetNextSibling(Handle, ParentID);
    end;
    Result := FOwner.GetNode(NodeID);
  end;
end;
  Mit Zitat antworten Zitat