Hallo alcaeus,
danke für deinen Hinweis. Habe nochmal etwas genauer in die Online-Hilfe geschaut. Nach meinem jetzigen Kenntnisstand ist da ein Unterschied zwischen methoden-gestützter Iteration und dem Sprachmittel FOR-IN, denn laut
OH D2005 ist folgendes möglich:
Delphi-Quellcode:
var
i: integer;
ai: array of integer;
begin
sum := 0;
for i in ai do
Inc(sum, i);
end;
Da ist doch bestimmt kein Enumerator im Spiel, oder? Das müsste der Compiler doch einfach so schaffen! Und dass der Compiler Panel1.Controls nicht als ArrayAusdruck akzeptiert, liegt wohl wirklich daran, dass es sich um eine Array Property handelt - worauf
mirage228 schon eingangs hinwies. Da der Zugriff über eine Funktion mit dem Parameter
index geschieht, kann sich alles und nichts hinter dieser array property verbergen, z.B. auch sowas:
Delphi-Quellcode:
function GetArrayItem(index: integer): integer;
begin
if index < 2
then Result := index
else Result := GetArrayItem(Pred(index)) + index;
end;
Danke an alle die zu meiner Erleuchtung beigetragen haben.
Grüße vom marabu