procedure TForm1.VSTGetNodeDataSize(Sender: TBaseVirtualTree;
var NodeDataSize: Integer);
begin
NodeDataSize := SizeOf(TData); // important to put if error exception appears
end;
procedure TForm1.VSTLoadNode(Sender: TBaseVirtualTree; Node: PVirtualNode;
Stream: TStream);
var
Data: Pdata;
Len: Integer;
begin
Data := VST.GetNodeData(Node);
//NewNode:=Sender.GetNodeData(Node);
Stream.Read(Len, SizeOf(Len));
SetLength(Data^.Fnombre, Len);
Stream.Read(PChar(Data^.Fnombre)^, Len * SizeOf(Data^.Fnombre[1]));
Stream.Read(Len, SizeOf(Len));
SetLength(Data^.Fapellido, Len);
Stream.Read(PChar(Data^.Fapellido)^, Len * SizeOf(Data^.Fapellido[1]));
Stream.Read(Len, SizeOf(Len));
SetLength(Data^.Fedad, Len);
Stream.Read(PChar(Data^.Fedad)^, Len * SizeOf(Data^.Fedad[1]));
Stream.Read(Len, SizeOf(Len));
SetLength(Data^.Ftrabajando, Len);
Stream.Read(PChar(Data^.Ftrabajando)^, Len * SizeOf(Data^.Ftrabajando[1]));
//FImageIndex
//Stream.Read(PChar(Data^.FImageIndex)^, SizeOf(Data^.FImageIndex));
// load cImageIndex
Stream.Read(Data^.FImageIndex, SizeOf(Data^.FImageIndex));
end;
procedure TForm1.VSTSaveNode(Sender: TBaseVirtualTree; Node: PVirtualNode;
Stream: TStream);
var
data: Pdata;
len: Integer;
begin
Data := VST.GetNodeData(Node);
Len := Length(Data^.Fnombre);
Stream.Write(Len, SizeOf(Len));
Stream.Write(PChar(Data^.Fnombre)^, Length(Data^.Fnombre) * SizeOf(Data^.Fnombre[1]));
Len := Length(Data^.Fapellido);
Stream.Write(Len, SizeOf(Len));
Stream.Write(PChar(Data^.Fapellido)^, Length(Data^.Fapellido) * SizeOf(Data^.Fapellido[1]));
Len := Length(Data^.Fedad);
Stream.Write(Len, SizeOf(Len));
Stream.Write(PChar(Data^.Fedad)^, Length(Data^.Fedad) * SizeOf(Data^.Fedad[1]));
Len := Length(Data^.Ftrabajando);
Stream.Write(Len, SizeOf(Len));
Stream.Write(PChar(Data^.Ftrabajando)^, Length(Data^.Ftrabajando) * SizeOf(Data^.Ftrabajando[1]));
//FImageIndex
//Stream.Write(Data^.FImageIndex, SizeOf(Data^.FImageIndex));
//Stream.Write(Data^.FImageIndex, SizeOf(Data^.FImageIndex));
// store cImageIndex
Stream.Write(Data^.FImageIndex, SizeOf(Data^.FImageIndex));
end;
procedure TForm1.Button2Click(Sender: TObject); // botón para guardar
begin
VST.SaveToFile('filename.dat');
end;
procedure TForm1.Button3Click(Sender: TObject); // botón para abrir
begin
VST.LoadFromFile('filename.dat');
end;