and why you don't use "data"?
look this sample:
type
TNivelRecord = record
Empresa, Plano, Codigo: int64;
Acesso: byte;
Tipo: integer;
EmNivel: boolean;
end;
TNivelPointer = ^TNivelRecord;
(...)
procedure Tnivel.MenuAcessDataNodeClick(Sender: TObject);
var
Registro: TNivelPointer;
begin
Registro := TreeView.Selected.Data;
Showmessage(inttostr(Registro^.Empresa));
Showmessage(inttostr(Registro^.plano));
Showmessage(inttostr(Registro^.codigo));
end;
procedure Tnivel.NewNode(Node: TTreeNode);
var
Registro: TNivelPointer;
Node1: TTreeNode;
begin
Reg := node.Data;
New(Registro);
Registro^.Empresa := 1; {or a integer number, var, const...}
Registro^.Plano := 2;
Registro^.Codigo := 5;
Registro^.Acesso :=4;
Registro^.EmNivel := true;
Registro^.Tipo := 65;
Node1 := TreeView.Items.AddChildObject(node,'New register caption', Registro);
Node1.ImageIndex := 0;
Node1.SelectedIndex := 1;
end;
procedure Tnivel.TreeViewDeletion(Sender: TObject; Node: TTreeNode);
begin
freemem(node.Data, sizeof(TNivelRecord));
end;
Important: freemem to avoid memory leaks!