Исполняет набор команд для каждого элемента в массиве или коллекции Visual FoxPro.
|
---|
FOR EACH Var [AS Type [OF Class Library]] IN Group [FOXOBJECT]
Commands
[EXIT]
[LOOP]
ENDFOR | NEXT [Var] |
Параметры
- Var
-
Переменная элемента массива, используемая для многократного прохода
по элементам
Group.
-
Type
-
Базовый класс, имя класса или библиотеки типов. (Только для Intellisense)
-
Class Library
-
Библиотека класса, содержащая базовый класс, имя класса или библиотеки типов, указанной в Type.
(Только для Intellisense)
-
Group
-
Массив Visual FoxPro, массив OLE, коллекция Visual FoxPro или коллекция OLE.
- FOXOBJECT
-
Указывает, что переменная или элемент массива
Var будет содержать только родные объекты (не COM) Visual FoxPro.
-
Commands
-
Указывает команды Visual FoxPro,
которые будут исполняться для каждого элемента в Group.
Commands может включать в себя любое число команд.
- EXIT
-
Передает управление из цикла FOR EACH ... ENDFOR команде,
следующей непосредственно за оператором ENDFOR. Вы можете разместить EXIT
в любом месте между операторами FOR EACH и ENDFOR.
- LOOP
-
Возвращает управление назад к началу цикла FOR EACH без исполнения команд, заключенных между
LOOP и ENDFOR. Вы можете разместить LOOP
в любом месте между операторами FOR EACH и ENDFOR.
Примеры
Приведенные ниже примеры показывают, как FOR EACH используется для перебора элементов в массиве Visual FoxPro,
в массиве OLE и набора командных командных кнопок, присвоенному объектным элементам массива.
В приведенном примере создается массив переменных Visual FoxPro, а
FOR EACH используется для отображения каждого элемента в массиве.
| Скопировать код |
---|
DIMENSION cMyArray(3)
cMyArray[1] = 'A'
cMyArray[2] = 'B'
cMyArray[3] = 'C'
FOR EACH cMyVar IN cMyArray
? cMyVar
ENDFOR |
В приведенном ниже примере создается экземпляр Microsoft Excel,
и добавляется новая рабочая книга. FOR EACH используется
для отображения имени каждого рабочего листа рабочей книги.
Для этого примера требуется, чтобы на компьютере был должным образом установлен Microsoft
Excel.
| Скопировать код |
---|
oExcel = CREATE("Excel.Application")
oExcel.Workbooks.ADD
FOR EACH oMyVar IN oExcel.sheets
? oMyVar.name
NEXT oMyVar |
В приведенном ниже примере на форму помещается пять командных кнопок.
FOR EACH используется для отображения кнопок на форме
и указания их заголовков, стилей шрифта и позиции каждой командной кнопки.
| Copy
Code |
---|
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 |
Смотрите
также