When working with the Virtual TreeView component the most optimized way of adding (or removing child nodes is by changing the ChildCount.

I often make the mistake of change the ChildCount of a Node using:

objectpascal Download
Node^.ChildCount := Count;

If you look into the source you will see why this will not work, the proper way is:

objectpascal Download
VirtualTree.ChildCount[Node] := Count;

This is mainly a note to self since I tend to forget it all the time ;-)