![]() |
TMS-TAdvStringrid und FastMM4
Hallo,
FastMM4 liefert mir folgenden MemLeak. A memory block has been leaked. The size is: 100 This block was allocated by thread 0x1068, and the stack trace (return addresses) at the time was: 40345A [System][@GetMem] 40546B [System][TObject.NewInstance] 40583A [System][@ClassCreate] 683B52 [BaseGrid.pas][BaseGrid][TCellProperties.Create][1572] 632734 [Grids][TStringSparseList.GetObject] 633235 [Grids][TStringGrid.GetObjects] 6822D8 [BaseGrid.pas][BaseGrid][TBaseGrid.GetCellProperties][801] 6818F8 [BaseGrid.pas][BaseGrid][TBaseGrid.SetObjectEx][569] 41222C [SysUtils][IntToStr] The block is currently used for an object of class: TCellProperties der Code ist etwa folgender Grid.Objects[x,y]:= MyObject; MyObject ist ein Objekt in einer globalen Liste. Noch zur Erklärung: Das TAdvStringGrid benutzt das original Objects intern selbst und biegt einen Zugriff von außen auf CellProperties-Objects ([TBaseGrid.SetObjectEx) um. Ich habe in der Liste 4 Einträge, CellProperties wird aber 3mal als mem leak bemängelt. Alles sehr merkwürdig. Weiß jemand, woran das liegen könnte? |
AW: TMS-TAdvStringrid und FastMM4
Hallo,
sooo. Lösung: irgendwo in den Code rein (bei mir ist es der Destructor der Renderer-Klasse).
Delphi-Quellcode:
for iRow:= 0 to _grid.RowCount-1 do
begin if Assigned(_grid.CellProperties[PObject, iRow].CellObject) then begin _grid.CellProperties[PObject, iRow].CellObject:= nil; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:29 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