Einzelnen Beitrag anzeigen

Muetze1
(Gast)

n/a Beiträge
 
#10

Re: Object aus einer TList löschen

  Alt 21. Feb 2007, 12:39
1. Ein free reicht völlig.
2. Ein Nil setzen muss nicht sein, der Eintrag fliegt eh raus. Du hast ja ein TList Nachkommen und keinen TObjectList Nachkommen, der selber versuchen würde das zu entfernende Element zu löschen (was beim zuweisen von Nil auf einen Item auch geschehen würde).

Daher:

Delphi-Quellcode:
var lObj: TObject;
begin
  lObj := Liste.Items[Index];
  Liste.Delete(Index);
  lObj.Free; // kann genauso gut vor dem Delete() stehen, das ist Schnuppe...
end;
Bzw. Luckies Version:

Delphi-Quellcode:
procedure TPageCollection.Delete(Index: Integer);
begin
  Self.Items[Index].Free;
  inherited Delete(Index);
  Self.Rename;
end;
  Mit Zitat antworten Zitat