Hallo marabu,
der Grund ist wahrscheinlich der fehlende Enumerator.
sakura hat mal ein gutes Beispiel gepostet, wie man diese Funktionalitaet nachtraeglich noch einbauen kann:
zum Beitrag
In Delphi 7 gibt es das for-in-do-Konstrukt leider nicht, also wirst du dort immer noch auf die "alte" Variante mit Laufvariablen zurueckgreifen muessen, ausser du baust dir irgendwie einen Enumerator rein, und machst manuell das, was der Delphi-Compiler fuer dich reinschreibt:
Delphi-Quellcode:
with SomeCollection.GetIEnumerator() do
begin
while MoveNext() do
begin
Current.SomeProperty := SomeValue;
end;
end;
Am Ende ist es das, was der Compiler aus deiner for-in-do-Schleife macht. Der einzige Unterschied ist hier die Verwendung von Get
IEnumerator anstatt GetEnumerator in Delphi 2005. Warum das so ist, weiss ich im Moment auch nicht
Greetz
alcaeus