Thema: Delphi VST Speicherleak

Einzelnen Beitrag anzeigen

hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#6

Re: VST Speicherleak

  Alt 23. Feb 2008, 10:44
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
  Mit Zitat antworten Zitat