Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: Generics - Pro und Contra

  Alt 24. Mai 2014, 10: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;
$2B or not $2B

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