![]() |
AW: Auf Objekt in der TObjectList zugreifen
Es gibt mindestens 4 Varianten:
1.) man verwendet TObjectList und muss beim auslesen der Objekte casten 2.) man verwendet eine generische ObjektList (natürlich nur wenn man eine Delphi Version hat die das unterstützt) 3.) man leitet von TObjectList ab und überdeckt das Items[]-Property 4.) man erstellt eine Klasse die intern ein privates Objekt vom Typ TObjectList hat und präsentiert nach Aussen nur die Properties und Methoden die man für die Aufgabenstellung unbedingt braucht:
Delphi-Quellcode:
Das bedeutet natürlich die meiste Schreibarbeit und den geringsten Grad an Wiederverwendbarkeit;
TSomeItems = class(TObject)
private FList : TObjectList; public constructor Create; destructor Destroy;override; procedure Add(item:TSomeItem); function AddNew:TSomeItem; property Items[Index: integer]: TSomeItem read GetSomeItem; default; property Count:Integer read GetCount; end; im Gegenzug kann man die Klasse auf seine Anforderungen genau zuschneiden und hat die beste Kontrolle darüber was in die Liste eingefügt oder aus der Liste gelöscht werden kann. |
AW: Auf Objekt in der TObjectList zugreifen
3a) wie in 3 genannt
3b) mit überschreiben verdecken von Add und Insert, mit dem gewollten Typen 3c) mit überschreiben von Notify und am Besten auch Add/Insert Bei 3c bekommt man zwar erst Meldung nach der Aktion. Entweder man wirft nur eine Exception und lässt das so, oder bei Add wird das ungültige gleich wieder entfernt und danach die Exception, bzw. beim Löschen wieder eintragen und Exception. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz