Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#12

Re: Alle Controls mit FOR-IN durchlaufen?

  Alt 5. Jun 2005, 12:26
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
  Mit Zitat antworten Zitat