Cada nodo (TTreeNode) tiene una propiedad Data de tipo Pointer que puedes apuntar a la estructura o clase que quieras. Simplemente tienes que tener cuidado con el manejo de la memoria. Lo más sencillo es que uses el evento OnAddition del Treeview para crear el objeto que desees y asignarlo al nodo:
Código Delphi
[-]
procedure TForm1.TreeView1Addition(Sender: TObject; Node: TTreeNode);
var
Dato: TMiClase;
begin
Dato := TMiClase.Create(...);
Node.Data := Dato;
end;
y el evento OnDeletion para liberar memoria:
Código Delphi
[-]
procedure TForm1.TreeView1Deletion(Sender: TObject; Node: TTreeNode);
begin
TMiClase(Node.Data).Free;
end;
Eso sí, para acceder a los datos del nodo tienes que hacer el moldeo:
Código Delphi
[-]
TMiClase(TreeVie1.Selected.Data).Activo := ....;
Bye