Einzelnen Beitrag anzeigen

Phantom1

Registriert seit: 20. Jun 2003
282 Beiträge
 
Delphi 10.4 Sydney
 
#30

Re: Clear von TList überschreiben mit Objekten

  Alt 3. Jul 2007, 14:27
Ich denke mal du gibts irgendwo vorher schon ein TImageEnVect-objekt mit FInnerlist.Items[i].free, aber vergisst diesen itemeintrag auch aus der TList zu löschen mit FInnerlist.delete(i).

bsp:

du hast 4 objekte in der TList:

Finnerlist.Items[0]
Finnerlist.Items[1]
Finnerlist.Items[2]
Finnerlist.Items[3]

und du gibst jetzt das 3te Item frei mit FInnerlist.Items[2].free (ohne anschließenden aufruf finnerlist.delete(2)), dann sieht es so aus;

Finnerlist.Items[0]
Finnerlist.Items[1]
Finnerlist.Items[2] (item immernoch verhanden, aber objekt bereits freigegeben
Finnerlist.Items[3]

In deiner Assign methode werden dann alle objekte durchgegangen und auf FInnerlist.Items[2] zugegriffen, obwohl das objekt bereits freigegeben wurde.
  Mit Zitat antworten Zitat