Freigeben über


FOR EACH … ENDFOR-Befehl

Führt Befehle für jedes Element eines Visual FoxPro-Arrays oder einer Auflistung aus.

FOR EACH Var IN GroupCommands
   [EXIT]
   [LOOP]
ENDFOR | NEXT [Var]

Eigenschaftswerte

  • Var
    Eine Variable oder ein Arrayelement, das verwendet wird, um die Elemente Group in einer Schleife zu durchlaufen.
  • Group
    Ein Visual FoxPro-Array, ein OLE-Array, eine Visual FoxPro-Auflistung oder ein OLE-Auflistung.
  • Commands
    Gibt die Visual FoxPro-Befehle an, die für jedes Element in Group ausgeführt werden sollen. Mit Commands kann eine beliebige Anzahl von Befehlen angegeben werden.
  • EXIT
    Übergibt die Kontrolle aus der EACH ... ENDFOR-Schleife heraus an den Befehl unmittelbar nach ENDFOR. Sie können EXIT an einer beliebigen Stelle zwischen FOR EACH und ENDFOR einfügen.
  • LOOP
    Gibt die Kontrolle direkt an die FOR EACH-Klausel zurück, ohne dass die Anweisungen zwischen LOOP und ENDFOR ausgeführt werden. LOOP kann an einer beliebigen Stelle zwischen FOR EACH und ENDFOR eingefügt werden.

Beispiele

In den folgenden Beispielen wird gezeigt, wie mit FOR EACH die in einem Visual FoxPro-Array und in einem OLE-Array enthaltenen Elemente aufgelistet und wie Befehlsschaltflächen zu einem Objektarray zugeordnet werden.

Im folgenden Beispiel wird ein Visual FoxPro-Array erstellt und der Inhalt eines jeden Elements mit Hilfe von FOR EACH angezeigt.

DIMENSION cMyArray(3)
cMyArray[1] = 'A'
cMyArray[2] = 'B'
cMyArray[3] = 'C'

FOR EACH cMyVar IN cMyArray
   ? cMyVar
ENDFOR

Im folgenden Beispiel wird eine Instanz von Microsoft Excel erstellt und eine neue Arbeitsmappe hinzugefügt. Mit Hilfe von FOR EACH werden die Namen der in der Arbeitsmappe enthaltenen Arbeitsblätter angezeigt. Microsoft Excel muss auf dem Computer, auf dem das Programmbeispiel ausgeführt wird, korrekt installiert sein.

oExcel = CREATE("Excel.Application")
oExcel.Workbooks.ADD

FOR EACH oMyVar IN oExcel.sheets
   ? oMyVar.name
NEXT oMyVar

Im folgenden Beispiel werden in einem Formular fünf Befehlsschaltflächen definiert. Mit Hilfe von FOR EACH werden die Schaltflächen auf dem Formular angezeigt und die Beschriftungen, Schriftstile und Positionen der einzelnen Schaltflächen festgelegt.

PUBLIC oMyObject
oMyObject = CREATEOBJECT("frmTest")
oMyObject.SHOW

DEFINE CLASS frmTest AS FORM
Height = 200
DIMENSION MyArray[5]
   PROCEDURE Init

      FOR i = 1 to 5
         THIS.AddObject('THIS.MyArray[i]',;
            'COMMANDBUTTON')
      ENDFOR      

***** FOR EACH - NEXT ***** FOR EACH oButton IN THIS.MyArray oButton.Visible = .T. NEXT

***** FOR EACH - NEXT element ***** FOR EACH oButton IN THIS.MyArray oButton.FontBold = .T. NEXT obutton

      j = 1

***** FOR EACH - ENDFOR ***** FOR EACH oButton IN THIS.MyArray oButton.top = j * 30 j = j + 1 ENDFOR

***** FOR EACH - ENDFOR element ***** FOR EACH oButton IN THIS.MyArray oButton.FontItalic = .T. ENDFOR obutton

      j = 1

***** EXIT ***** FOR EACH oButton IN THIS.MyArray oButton.Caption = "test" + str(j) j = j+1 IF j > 3 EXIT ENDIF NEXT

      j = 1

***** LOOP ***** FOR EACH oButton IN THIS.MyArray IF j > 3 LOOP ENDIF j = j + 1 oButton.Left = 25 NEXT ENDPROC ENDDEFINE

Siehe auch

FOR ... ENDFOR | DO CASE ... ENDCASE | DO WHILE ... ENDDO | IF ... ENDIF | SCAN ... ENDSCAN |EXIT | LOOP