Hola. Estoy tratando de "domar" al Virtual TreeView pero es un hueso duro de roer, tanto que estoy a punto de tirar la toalla. He visto todos los enlaces, todos los ejemplos y hay cosas que no acabo de entender. El VirtualTreeView esta hecho como sabeis para que se creen nodos raiz y a partir de ahi todos los demas. Los datos de dichos nodos van aparte y se pueden crear en el evento OnInit, cuando se crea el arbol o cuando quieras, mostrando cada nodo su texto mediante OnGetText. Todo esto esta bien hasta que llegamos a la parte de seguir añadiendo nodos a los nodos raiz.....Algo asi no funciona:
Código Delphi
[-]
try
Nodo := Form1.VST1.GetFirst;
while Assigned(Nodo) do
begin
Form1.VST1.Selected[Nodo] := True;
N2:=Form1.VST1.GetNodeData(Nodo);
S1:=N2.Id;
Form1.FDTable11.First;
while not Form1.FDTable11.Eof do
begin
S2:=Form1.FDTable11['Parent'];
if S2=S1 then begin
N:=nil;
N.Id:= StrToInt(Form1.FDTable11['Id']);
añade_nodo(Form1.VST1,Nodo,N);
Initialize(N^);
end;
Form1.FDTable11.Next;
end;
end;
Nodo := Form1.VST1.GetNextSibling(Nodo);
finally
Form1.VST1.EndUpdate;
end;
Lo que voy haciendo en este codigo es lo siguiente: Tengo 3 tabalas cada una para un nivel del arbol . Lo he hecho asi para que en tiempo de ejecucion sea muy facil añadir nodos (registros) a las tablas. En el codigo busco los nodos hijo de un padre determinado comparando los campos 'ID' de cada registro de la tabla de registros hijo con un 'Id' determinado de la tabla de registros raiz. Pues bien, cuando detecta que un hijo pertenece a un padre no me deja coger dicho registro de la tabla de hijos. En añade_nodo tengo todo para crear el nodo hijo (AddCHild, etc) pero no llega a hacerlo por este error.
Código Delphi
[-]
N.NCaption := Form1.FDTable11.FieldByName('Cities').asString;
Aqui es donde da un error...He tratado de coger dicho dato con un Dataurce o otro Dataset pero no hay manera. Cualquier ayuda es bienvenida y agradecida.
Muchas gracias
Saludos