Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#20

Re: VirtualStringTree: Speicherleck

  Alt 1. Nov 2009, 10:48
@alzaimar:
Hier war der Record schon im Tree eingebaut.

New/Dispose reservieren Speicher, geben ihn wieder frei und machen zusätzlich noch die Initialisierung/Finalisierung.

Da der Speicher vom Record aber schon vorhanden war, fehlt hier nur noch die Initialisierung/Finalisierung.

Und eben eine stelle, wo die Finalisierung auch aufgerufen wird.

OnFreeNode scheint ja demnach wohl nicht so gut geeignet, obwohl ich das einfach nicht versteht, warum dieses nur aufgerufen wird, wenn der Node erst angezeigt wurde o.O


aber ich hätte da jetzt eine "Lösung":
Delphi-Quellcode:
Node := vst.AddChild(ParentNode);
Data := vst.GetNodeData(Node);
Include(Node.States, vsInitialUserData);
Initialize(Node);
...
Data.Text := 'gfdsvcxvy';
und schon sollte OnFreeNode aufgerufen werden
Delphi-Quellcode:
procedure TSettingsForm.vstFreeNode(Sender: TBaseVirtualTree; Node: PVirtualNode);
...
Finalize(NodeData^.Text);
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat