Der Record selbst wird automatisch freigegeben.
Aber wenn der Record auf Strings, dynamische Arrays, Objekte, Interfaces referenziert oder auf weitere Daten verweist, muss man sich um deren Freigabe selbst kümmern.
Dafür gibt es das Ereignis OnFreeNode:
Delphi-Quellcode:
procedure TMyForm.MyTreeFreeNode(Sender: TBaseVirtualTree; Node: PVirtualNode);
begin
var lData := PTreeData(Sender.GetNodeData(Node));
lData.MyString := nil;
lData.MyArray := nil;
lData.MyObject.Free;
lData.MyInterface := nil;
end;