So ähnlich (hatte auch einen Recordpointer übergeben) hatte ich das gemacht:
Delphi-Quellcode:
procedure AddNodes(Root: PVirtualNode; Data: PCatData);
var
i: integer;
NodeData: PNodeData;
NewNode: PVirtualNode;
begin
with frmInteractive do
begin
NewNode := CatList.AddChild(Root);
NodeData := CatList.GetNodeData(NewNode);
NodeData.Caption := Data^.Caption;
NodeData.ImageIndex := Data^.ImageIndex;
NodeData.Panel := nil; // hinterher ändern
for i := low(Data^.SubCats^) to high(Data^.SubCats^) do
begin
AddNodes(NewNode, Data^.SubCats^[i]);
end;
end;
end;
Aber ich weis nicht, wie das mit dem "PVirtualNode" is...
[edit]OOPs... Pointeralarm ^^ Hatte glatt die SubCats übersehen xD[/edit]