Hola Jesús. Hace muchos años que no uso VST, pero mirando un proyecto antiguo te mando lo que hacía para cargar un árbol de un sólo nivel. No llegué a explorar mucho más allá. A ver si te sirve.
Código SQL
[-]
procedure TFListados.iniciaArbol;
var
Data1 : PEntryData;
Node1: PVirtualNode;
NewNode : PVirtualNode;
begin
VST.BeginUpdate;
VST.Clear;
VST.RootNodeCount := 0;
Node1 := VST.AddChild(VST.RootNode);
Data1 := PEntryData(VST.GetNodeData(Node1));
Data1.Titulo := 'Listados';
Dat.cdInf.close;
Dat.cdInf.Params.ParamByName('GRUPO').asInteger := Grupo;
Dat.cdInf.open;
VST.Selected[VST.TopNode] := true;
VST.FocusedNode := VST.TopNode;
while NOT Dat.cdInf.EOF do
begin
NewNode := VST.AddChild(VST.FocusedNode);
with PEntryData(VST.GetNodeData(NewNode))^ do
begin
Titulo := Dat.cdInfNOMBRE.value;
Informe := Dat.cdInfINFORME.value;
Id := Dat.cdInfUSER_FLAG.value;
Tipo := Dat.cdInfTIPO.value;
end;
Dat.cdInf.Next;
end;
VST.EndUpdate;
VST.FullExpand;
end;