Einzelnen Beitrag anzeigen

silver-moon-2000

Registriert seit: 18. Feb 2007
Ort: Schweinfurt
170 Beiträge
 
Delphi XE Professional
 
#3

AW: Wozu dient TList.Delete ??

  Alt 26. Sep 2014, 16:13
Eigentlich hielt ich dies für selbstverständlich:
TList verwaltet Zeiger und keine Objekte. Delete = Pointer aus der Liste löschen;
TObjectList verwaltet Objekte (schlagt mich bitte nicht!). Bedeutet wenn OwnsObject = true; , dann Delete = Objekt freigeben und Pointer löschen (Das Objekt gehört ja der Liste, wie der Name schon sagt)
Ich fange gleich an, zu heulen. Du hast ja so Recht. Und ich wieder einmal viel zu kurz geschaut.

Delphi-Quellcode:
procedure TObjectList<T>.Notify(const Value: T; Action: TCollectionNotification);
begin
  inherited;
  if OwnsObjects and (Action = cnRemoved) then
    Value.Free;
end;
TObjectList gibt also wirklich den Wert frei!
Kann mir BITTE mal jemand sagen, wie ich so blöd sein konnte, das zu übersehen?

Ich ziehe somit die Frage zurück und behaupte das Gegenteil.
Tobias
Bitte nicht hauen , ich weiß es nicht besser
  Mit Zitat antworten Zitat