Einzelnen Beitrag anzeigen

Shark99

Registriert seit: 16. Mai 2007
403 Beiträge
 
#1

Aus einer generic TList richtig löschen

  Alt 19. Jul 2016, 18:50
Delphi-Version: XE5
Ich bin mir recht sicher, dass ich ein Element auch einer TList<t> so löschen muss, aber es ist besser ich frage bevor es Speicherleaks oder AV gibt.
Delphi-Quellcode:
  TDataItem = class
    Modified: int64;
    Data: string;

    Constructor Create(iModified: int64; sData: string);
  end;

var

  TestList: TList<TDataItem>;
  DataItem: TDateItem;
  i: Integer;
  
...

  TestList := TList<TDataItem>.Create;
  
  for i := 0 to 10 do
     TestList.Add(TDataItem.Create(i,'test'));
 
 DataItem := TestList[5];
 TestList.Delete(5);
 DataItem.Free; // nötig?
Ich hab noch zusätzliche Fragen zu List.Remove()

Wird beim Remove das Objekt automatisch befreit, oder muss ich es auch manuell mit Free tun?

Was ist wenn ich an Remove ein Objekt übergebe welches mehrmals in der Liste vorhanden ist. Wird da nur das erste gefundene gelöscht?

Muss ich um Remove zu verwenden beim Erstellen von TestList einen IComparer mit angeben?
  Mit Zitat antworten Zitat