Normalerweise überlässt man dem Tree das Speichermanagement. Wenn du allerdings Objekte daran hängen willst, solltest du sowas machen:
Delphi-Quellcode:
type
TNodeData = record
Data: TObject
end;
PNodeData = ^TNodeData;
Dann setzt du die MyTree.NodeDataSize := SizeOf(TNodeData) und schon kannst du mit GetNodeData lustig Objekte austauschen.
Schreib dir dazu am besten ne Methode, z.B.:
Delphi-Quellcode:
function GetObjectOfNode(Node: PVirtualNode; Tree: TBaseVirtualTree): TObject
var
LNodeData: PNodeData;
begin
LNodeData := Tree.GetNodeData(LNodeData);
if Assigned(LNodeData) then
Result := LNodeData.Data
else
Result := nil;
end;
procedure SetObjectOfNode(Node: PVirtualNode; Tree: TBaseVirtualTree; Obj: TObject);
var
LNodeData: PNodeData;
begin
LNodeData := Tree.GetNodeData(LNodeData);
if Assigned(LNodeData) then
LNodeData.Data := Obj;
end;
Code ist ohne Delphi bzw VST geschrieben, also nicht 100% compile Garantie