Zitat von
sakura:
Im OnFree musst Du die strings Deines Records auf nil (bei Strings '') setzen.
...
...
Das mache ich bereits bringt aber nichts.
Hier die Freigabe
Delphi-Quellcode:
procedure TForm5.VirtualStringTree1FreeNode(Sender: TBaseVirtualTree;
Node: PVirtualNode);
var
NodeData : PTreeData;
begin
NodeData := Sender.GetNodeData(Node);
NodeData.Title := '';
Finalize (NodeData^);
end;
und hier das Erzeugen des Baumes:
Delphi-Quellcode:
procedure Add(Gruppe: Char;ID : integer; Titel:string);
var
i : integer;
sel : boolean;
Node1 : PVirtualNode;
begin
sel := true;
for i := 0 to Lst.Count -1 do
begin
zg := TDruckliste(Lst[i]);
if zg.Untergrp = Gruppe then
begin
if Sel then // Bei erstmaligen Auftreten Gruppenkopf anlegen
begin
Child := VST.AddChild(nil); // VST.AddChild(Node);
VST.InvalidateNode (Child);
ptr := VST.GetNodeData(Child);
ptr^.ID := ID;
ptr^.Title := Titel;
ptr^.Single := false;
ptr^.Untergrp := Gruppe;
ptr^.FixID := zg.FixRep;
ptr^.isUntergrp := true;
sel := false;
end;
Node1 := VST.AddChild(Child);
VST.InvalidateNode (Node1);
ptr := VST.GetNodeData(Node1);
ptr^.ID := zg.RID;
ptr^.Title := zg.Titel;
ptr^.Single := false;
ptr^.Untergrp := Gruppe;
ptr^.FixID := zg.FixRep;
ptr^.isUntergrp := false;
zg.Node := Node1;
VST.CheckType[node1] := ctCheckBox;
Node1.CheckType := ctCheckBox;
Node1.CheckState := csUncheckedNormal;
VST.CheckState[node1] := csUncheckedNormal;
end;
end;
VST.Invalidate;
end;
Gruß
Peter