ich habe zwar schon lange nicht mehr mit dynamischen Arrays gearbeitet, aber wenn ich das noch richtig im Kopf habe, sollte man da über SetLength und co. doch entsprechenden Speicher reservieren? Sprich nach deinem GetNodeData() solltest Du schauen wie groß das Array ist und dann über SetLength ggf. weitere ELemente dazu fügen.
Er hat ein Pointer auf ein dynamisches Array, deswegen muss er wie EmWieMichael gesagt hat mit New das Array erzeugen und danach erst mit SetLength die größe des Arrays setzen.
(Später dann wie gesagt mit Dispose die Arrays frei geben!)
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."