Einzelnen Beitrag anzeigen

Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

Pointer of Record --> Record konvertieren

  Alt 25. Feb 2007, 17:53
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?
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat