Ist mir auch mit Schrecken aufgefallen, daß Bezug auf die ParamListe eines Queries genommen wird, daß klicks später vielleicht schon zerstört wird...
Wenn Du unbedingt ein paar Daten speichern mußt, mach Dir ein record :
RMyData = packed record
ID : integer;
// Bla
end;
PMyData = ^RMyData;
function NewData: PMyData;
begin
New(Result);
end;
Dann knall Dir das in den TreeView :
...
LastInserted.Data := NewData;
...
und nun bearbeiten :
...
PMyData(LastInserted.Data)^.ID := Fields[0].AsInteger; // weißt schon
...
LG, MyRealName