Stümmt, ich sehe in deinem Code aber nicht, wo auf die Liste verwiesen wird, oder wie ich auf den x.ten Eintrag komme.
Der Punkt ist ja, dass du bei der VrtualStringTree nur auf die Objekte in deiner Datenstruktur im Hintergrund verweist (bei meinem Beispiel eine Liste).
Wenn du an einen bestimmten Knoten zu bestimmten Daten heran willst (und nicht nur umgekehrt von einem selektierten Node auf die Daten zugreifen willst), kannst du z.B. einen Pointer auf den Node mit in dein Objekt packen oder ein TDictionary von deinen Objekten auf den Node benutzen.
Außerdem dachte ich immer, die Virtual TreeList arbeitet mit Records.
Welche Daten du da reinpackst, ist egal. In meinem Fall sind es die 4 Byte eines 32-Bit Pointers auf ein Objekt. Stattdessen kann man eben auch einen Record hineinpacken, aber das finde ich unpraktisch...