Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.139 Beiträge
 
Delphi 12 Athens
 
#13

AW: Generics - Pro und Contra

  Alt 24. Mai 2014, 09:32
In der selben Unit und in Units, welche die erste Unit einbinden, da könnte es das nur einmal geben, aber bei zwei Units, welche sich nicht kennen, da eventuell nicht.



Zu dem Pack:

Also das ist schon ein komisches Zeug, denn der Code wird in den Units garnicht aufgerufen.
Und das Left/Right in der Methode ist nirgendwo definiert. (ist wohl Compiler-Magic?)
Und scheint es nur so, oder kann in einer generischen TList<> eventuell kein NIL-Objekt abgelegt werden, da Pack dafür da ist, um die zu entfernen? [add] Aber das funktioniert nicht, drum knallt es.

Als TList>TObject> funktioniert folgender Code, aber als TObjectList<TObject> macht es bumm.
Delphi-Quellcode:
var
  L: TList<TObject>;
begin
  L := TObjectList<TObject>.Create; //List<TObject>.Create;
  ShowMessage(IntToStr(L.Count));
  L.Add(nil);
  ShowMessage(IntToStr(L.Count));
  L.Add(Self);
  ShowMessage(IntToStr(L.Count));
  L.Add(Self);
  ShowMessage(IntToStr(L.Count));
  L.Add(nil);
  ShowMessage(IntToStr(L.Count));
  L.Remove(Self);
  ShowMessage(IntToStr(L.Count) + ' ' + IntToStr(L.IndexOf(Self)));
  L.Delete(L.IndexOf(Self)); // bei TObjectList knallt es hier
  ShowMessage(IntToStr(L.Count));
  L.Free;
end;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (24. Mai 2014 um 09:40 Uhr)
  Mit Zitat antworten Zitat