Du kannst Dir deinen Enumerator selbst basteln um Instanzen der Klasse mit dem 'for in' Konstrukt zu iterieren
Zitat von
Die Delphi-Hilfe von BDS:
Für die Verwendung von for-in-Schleifenkonstrukten bei Klassen muss die Klasse ein vorschriftsmäßiges Kollektionsmuster implementieren. Ein Typ, der Kollektionsmuster implementiert, muss die folgenden Attribute haben:
Die Klasse muss eine als public deklarierte Instanzmethode namens GetEnumerator() enthalten. Die Methode GetEnumerator() muss einen Klassen-, Interface- oder Record-Typ zurückgeben.
Die von GetEnumerator() zurückgegebene Klasse bzw. das Interface oder der Record muss eine als public deklarierte Instanzmethode namens MoveNext() enthalten. Die Methode MoveNext() muss einen Boolean-Wert zurückgeben.
Die von GetEnumerator() zurückgegebene Klasse bzw. das Interface oder der Record muss eine als public deklarierte, schreibgeschützte Instanzeigenschaft namens Current enthalten. Der Typ der Eigenschaft Current muss mit dem in der Kollektion enthaltenen Typ übereinstimmen.
Wenn der von GetEnumerator() zurückgegebene Enumeratortyp das Interface System.IDisposable implementiert, ruft der Compiler beim Beenden der Schleife die Methode IDisposable.Dispose des Typs auf.