![]() |
AW: VirtualStringTree - Speicher freigeben
Wie issn so?
Delphi-Quellcode:
procedure TForm1.VSTFreeNode(Sender: TBaseVirtualTree; Node: PVirtualNode);
var Data: PTreeData; begin Data := Sender.GetNodeData(Node); Finalize(Data^); end; |
AW: VirtualStringTree - Speicher freigeben
Zitat:
|
AW: VirtualStringTree - Speicher freigeben
Dein Record welcher die Daten hält, enthält diese lange Strings?
Wenn ja musst du diese per Hand freigegeben, da Delphi den Speicher des Records nicht selbst verwaltet und daher die String nicht freigeben kann. Das habe ich damals auf dem 2. Stammtisch gezeigt mit FastMM. Vieleicht gibt es das Video noch irgendwo. ![]() Schnelle Abhilfe ist anstelle von String ein String[255] zu nehmen. (shortstring) Oder du nimmst Objekte, welche allerdings auch von dir freigegeben werden müssen. Hier erkennt aber Delphi die Hughstrings. |
AW: VirtualStringTree - Speicher freigeben
Zitat:
Delphi-Quellcode:
Das Finalize sorgt dafür, dass auch Strings, dynamische Arrays, etc. im verwendeten Record freigegeben werden.
procedure TForm1.VSTFreeNode(Sender: TBaseVirtualTree; Node: PVirtualNode);
var Data: PTreeData; begin Data := Sender.GetNodeData(Node); Finalize(Data^); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz