Para lo que queres hacer no es necesario agregar un campo a la BD, los TreeNode tienen métodos para moverse.
Podes hacerlo de la siguiente manera:
Código Delphi
[-]
procedure TForm1.CortarNodo();
begin
nodocortado:=Treeview1.Selected;
end;
procedure TForm1.PegarNodo();
begin
nodocortado.MoveTo(treeview1.Selected,naInsert);
end;
Antes de eso tenes que declarar una variable en la unidad del tipo TTreeNode llamada NodoCortado (o podes heredar el TTreeNode y agregarle un campo para este uso y poner las funciones anteriores como métodos).
El segundo parámetro del MoveTo indica donde mover el nodo respecto del nodo pasado como primer parámetro, puede valer:
* naInsert: hermano inmediatamente superior
* naAdd: último hermano
* naAddFirst: primer hermano
* naChild: ultimo hijo
* naChildFirst: primer hijo
Fijate si te sirve.
Saludos, Enrique Gabriel Baquela.
http://enrique-gabriel-baquela.neurona.com