Dazu musst du noch prüfen, wem die TBitmap-Objekte gehören.
Variante 1: Sie gehören dem Array, dann muss der sie erst freigeben und dann den Zeiger auf nil setzen.
Variante 2: Sie gehören nicht dem Array, eine andere Stelle im Programm hat die TBitmap-Objekte schon freigegeben, dann wir nur der Zeiger auf nil gesetzt.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| var I: Integer; TheArray: array [X..Y] of TBitmap; ABitmap: TBitMap; ... for I := Low(TheArray) to High(TheArray) begin ABitmap := TheArray[I]; ABitmap.Free; TheArray[I] := nil; end; |
@Losssi eX: Die Assigned-Prüfung ist nicht nötig, denn das macht Free selbst auch. Wäre also nur doppelt gemoppelt.