Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#4

AW: MemoryLeak bei VirtualStringtree

  Alt 3. Dez 2012, 19:44
Der Code sollte besser so aussehen:
Delphi-Quellcode:
procedure Tfrm_start.VstFreeNode(Sender: TBaseVirtualTree; Node: PVirtualNode);
var
  P: ^TObject;
begin
  P := Sender.getNodeData(Node);
  if Assigned(P) then
  begin
      P^.Free;
      P^ := nil; // zur Sicherheit
  end;
end;
Dass du "Vst" anstatt "Sender" verwendet hat, kann natürlich böse ins Auge gehen.
Eventuell lässt sich das noch so vereinfachen: (kann's nicht testen mangels VirtualTree Komponente)
Delphi-Quellcode:
procedure Tfrm_start.VstFreeNode(Sender: TBaseVirtualTree; Node: PVirtualNode);
var
  P: ^TObject;
begin
  P := Sender.getNodeData(Node);
  FreeAndNil(P^);
end;
Andreas
  Mit Zitat antworten Zitat