So, ich habe folgenden Record:
Delphi-Quellcode:
type
PCatData = ^TCatData;
TCatData = record
Caption: string;
ImageIndex: integer;
SubCats: array of PCatData;
end;
und folgende Funktion, die sich selbst rekursiv wieder aufruft:
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;
Starte ich die Rekursion erhalte ich allerdings eine Zugriffsverletzung, die vermutlich daher stammt, dass ich PCatData nicht einfach wie TCatData behandeln kann.
Kann da jemand helfen?