Delphi Entfernen eines Objekts aus einer TObjectList
Ich habe einen TObject-Liste (FileEventObjects := TObjectList.Create(True);
) mit einem oder mehreren Objekten. Die Objekte brauchen, um zu bleiben in der Liste, bis Sie verarbeitet werden. (Die Objekt-Liste vorhanden ist, für die Dauer der Anwendung.)
Ich bin mir nicht ganz sicher, wie Sie Sie zu entfernen, ein verarbeitetes Objekt aus der Liste.
Wird das Objekt "befreit" wenn ich FileEventObjects.Delete(i)
Gibt es links zu nützlichen Beispiele TObjectLists in Aktion?
GRÜßEN, Pieter.
- Wenn Sie schon einmal neugierig, ob ein Objekt ist immer freigegeben, fügen Sie diese Zeile zu der Destruktor: OutputDebugString('Befreiung TMyclassName'); Sie sehen Sie in das Ereignisprotokoll jedes mal, wenn es aufgerufen wird. Oder legen Sie einen Haltepunkt in TMyclassName.Zerstören. Sie können sogar schalten Sie Blitzschnell MM Speicher-Leck-Detektor, und Sie werden davor gewarnt, über Objekte, die nicht freigegeben, richtig.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie pass
True
zu denTObjectList
Konstruktor (es ist auchTrue
standardmäßig), wird die Liste freigegeben-Objekt, sobald Sie es aus der Auflistung entfernen, egal, wenn SieDelete
,Remove
oderClear
.Abgesehen davon
TObjectList
kann genauso verwendet werden wieTList
..Extract()
so entfernen Sie ein Objekt aus der Liste zu befreien, ohne es.denken Sie immer daran, Schleife rückwärts wie
wenn Sie die Schleife von 0 bis count -1, während das entfernen von Elementen, erhalten Sie Zugang Verletzungen