FoxPro/Visual FoxPro - FOR EACH - DETALLES.

 
Vista:
sin imagen de perfil

FOR EACH - DETALLES.

Publicado por DALSOM (612 intervenciones) el 08/02/2005 16:33:15
HOLA A TODOS, ESTOY TRATANDO DE UTILIZAR UNA INSTRUCCION NUEVA PARA MI.

HAY UNOS CUANTOS PUNTOS QUE NO ME QUEDAN CLAROS

FOR EACH VARIABLE1 ON OBJETO1
.....
ENDFOR

EN VARIABLE1, DE DONDE SACO EL VALOR DE ESTA, YA QUE EN LOS EJEMPLOS NO LA INICIALIZAN. PARA MI CASO, SERIA UN OBJETO, PERO COMO SE QUE TIPO DE OBJETO REPRESENTA ESA VARIABLE?

EN OBJETO1, A LO QUE QUIERO REFERENCIAR ES A UN OBJETO O FORMULARIO YA CREADO Y CON TODOS SUS OBJETOS DENTRO, PERO NO ME TOMA EL NOMBRE DEL FORMULARIO COMO VALIDO, NI TAMPOCO

THISFORM.NAME
_SCREEN.FORM1

POR EJEMPLO QUIERO QUE CUENTE LOS BOTONES DE UN FORMULARIO, INCLUYENDO LOS QUE ESTEN DENTRO DE ALGUN CONTENEDOR, MAS LOS QUE NO ESTEN.

PENSE QUE ESTE SERIA EL CODIGO

LOCAL VO,C
C=0
FOR EACH VO ON THISFORM.NAME
C=C+1
ENDFOR
WAIT WINDOWS STR(C)+' BOTONES' NOWAIT

PERO NO SE COMO DECIRLE AL FOR EACH QUE SON BOTONES LO QUE ESTOY BUSCANDO, O DONDE DEBE DE BUSCARLO.

ESPERO QUE PUEDAN ENTENDERME.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:FOR EACH - DETALLES.

Publicado por David Amador T. (168 intervenciones) el 08/02/2005 23:07:20
Te explico un poco ... FOR EACH se utiliza para recorrer colecciones... como por ejemplos los formularios actualmente ejectados.... los controles de un contenedor (form, pages, ...) ... en fin ...

Por ejemplo si quieres recorrer los objetos de un formulario

For Each oObj In Thisform.Controls
Wait Window oObj.Name
Next

For Each oObj In Thisform.Controls
If Upper(oObj.BaseClass) = 'TEXTBOX'
Wait Window oObj.Name
EndIf
Next

De otra forma, sin utilizar For Each

For i = 1 To Thisform.ControlCount
Wait window Thisform.Objects(i).Name
Next

* Si solo quieres los Text

For i = 1 To Thisform.ControlCount
If Upper(Thisform.Objects(i).BaseClass) = 'TEXTBOX'
Wait window Thisform.Objects(i).Name
EndIf
Next

Espero haberte ayudado..

Saludos..

David Amador Tapia
WebMaster "La Web de Davphantom"
www.davphantom.net
Cartagena. Colombia
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:FOR EACH - DETALLES.

Publicado por DALSOM (612 intervenciones) el 09/02/2005 14:01:56
HOLA MUCHAS GRACIAS POR CONTESTARME TOCAYO.
LA PARTE DEL _SCREEN.FORMS(N).NAME ESO YA LO HABIA ENTENDIDO, PERO SABIA QUE CON FOR EACH SE HACIA.

LO QUE NO ENTIENDO DEL FOR EACH, ES DE DONDE INICIAS TU PRIMERA VARIABLE PARA PODER COMPARAR, EN TU CASO LA VARIABLE OOBJ, ME EXPLICO, EN EL FOR, UTILIZAS UNA VARIABLE QUE LA IGUALAS A UN VALOR :

FOR E=1 TO N,

EN EL FOR EACH CREO QUE ES EL MISMO CONCEPTO,
oOBJ=VALOR
FOR EACH oOBJ IN MATRIZ
....
NEXT

PERO CUANDO INICIALIZAS ESE VALOR oOBJ, PARA COMPRARLO EN EL FORM, ESE ES EL PUNTO QUE NO ENTIENDO, YA QUE CUANDO LO PONGO ASI, SIEMPRE SERA .F. CUANDO LA DECLARO COMO LOCAL.

TU EJEMPLO ME HA SERVIDO DE MUCHO, HE ENTENDIDO UN POCO MAS DE ESO, PERO AUN ME QUEDA ESA DUDA.

GRACIAS.

SALUDOS DESDE LA REP. DOMINICANA.

DALSOM.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:FOR EACH - DETALLES.

Publicado por David Amador T. (168 intervenciones) el 09/02/2005 14:31:18
El For Each lo que hace es que cada elemento de la colección se le asigna a la variable a que tu refieres .. es decir no necesitas inicializar la variable.

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar