Einzelnen Beitrag anzeigen

RSE

Registriert seit: 26. Mär 2010
254 Beiträge
 
Delphi XE Enterprise
 
#4

Re: Speichern eines Objekts mit einer Liste von Objekten im

  Alt 13. Apr 2010, 11:09
Jetzt weiß ich wieder, was mich an diesen vorgefertigten Listen immer stört: Wenn ich mir ein Item zurückgeben lasse, dann ist das vom Typ TCollectionItem und nicht von meinem Typ TMyItem. Dadurch muss ich immer erst einen Typecast durchführen, bevor ich auf meine Eigenschaften zugreifen kann.
Delphi-Quellcode:
MyItemList.ItemClass(MyItemList.Items[2]).MyProperty := 'was'; // mit TCollection
MyItemList[2].MyProperty := 'was'; // eigene Lösung mit Items als default Property
Dem Nutzer meiner Komponente kann ich das wohl kaum abverlangen. Das heißt ich müsste die Collection komplett kapseln. Ist das wirklich so gedacht?

Wenn ich meine von TCollection und TCollectionItem abgeleiteten Klassen so vergewaltige, dass der Rückgabetyp TMyItem statt TCollection ist (Konstruktor, Add, Items etc. mit neuen Versionen verdecken und diverse Aufrufe umbauen), dann wird wohl der mitgelieferte Editor auch nicht mehr funktionieren. Vielleicht ergeben sich sogar noch mehr und unlösbare Fehler daraus...

Mein Fazit: Der Weg über TCollection ist Mist.

Also: Überzeugt mich vom Gegenteil oder beantwortet meine ursprüngliche Frage.
"Seit er seinen neuen Computer hat, löst er alle seine Probleme, die er vorher nicht hatte."
  Mit Zitat antworten Zitat