Devolver matriz desde formulario modal

18/05/2005 - 14:41 por Erik Weissman | Informe spam
Un saludo para todos.

Pido por favor, ayuda con lo siguiente.

Desde un formulario modal deseo devolver una matriz unidimensional de tres
filas. Hago lo siguiente:

1) En el formulario que lo llama, el codigo es
DO FORM opciones WITH parámetros ... TO aCopias

2) En el evento Unload del formulario modal "opciones" esta el codigo
RETURN Thisform.aValores > la matriz de datos que deseo devolver

Pero algo ocurre, pues en el formulario que llama intento usar los datos
recibidos en aCopias (variable que recoge los datos) y no hay manera, no me
salen mas que mensajes de errores.

Si alguien tiene alguna idea se agradece enormemente.

Muchas gracias de antemano

Saludos
Gonzalo Moreno
gonzmt@telefonica.net

Preguntas similare

Leer las respuestas

#6 Gonzalo Moreno
03/07/2005 - 13:45 | Informe spam
Siento haber tardado en responder sobre esto, estuve adelantando la
documentación de Ayuda sobre el programa en que estoy teniendo este
problema.

Gracias a Alex y a Luis María por vuestras respuestas, siento deciros que no
me han funcionado. He hecho tal como me decíais, escribiendo el código:
DO FORM opciones WITH Param1, Param2, ..., @aCopias
pero cuando intento cerrar la ventana en que escribo este código, me sale el
mensaje de error "El comando contiene una frase o palabra clave no
reconocida" y me resalta esta línea de código. Este comando no permite
ningún parámetro con la arroba por delante, en cuanto la quito desaparece el
mensaje de error y la ventana se cierra normalmente.

De todos modos me comentáis que todo esto es para pasar la variable por
referencia en vez de por valor. Pero, corregidme si me equivoco, se entiende
que los parámetros pasados a un formulario con el comando DO ... WITH por
defecto se transfieren ya por referencia. Y esto es lo que leo en la
documentación de Ayuda de VFP8 cuando leo la ayuda del comando SET UDFPARMS:
"Observaciones: De forma predeterminada, las variables se transfieren por
valor a una función definida por el usuario. (Las variables transferidas a
procedimientos con DO ... WITH se transfieren por referencia)"

¿Qué mas puedo intentar entonces?
Muchas gracias.

Saludos
Gonzalo Moreno



"Luis María Guayán" escribió en el mensaje
news:
Prueba de pasar la matriz por referencia:

(quita el código del metodo Unload y agrega el nuevo parametro a la lista
del método Init)

DIMENSION aCopias(1)
DO FORM opciones WITH Param1, Param2, ..., @aCopias
FOR ln = 1 TO ALEN(aCopias)
? aCopias(ln)
ENDFOR


Luis María Guayán
Tucumán, Argentina
________________________________
SysOp de www.PortalFox.com
Microsoft Visual FoxPro MVP
________________________________
La palabra imposible solo figura
en el diccionario de los tontos


"Erik Weissman" escribió en el mensaje
news:
Un saludo para todos.

Pido por favor, ayuda con lo siguiente.

Desde un formulario modal deseo devolver una matriz unidimensional de
tres
filas. Hago lo siguiente:

1) En el formulario que lo llama, el codigo es
DO FORM opciones WITH parámetros ... TO aCopias

2) En el evento Unload del formulario modal "opciones" esta el codigo
RETURN Thisform.aValores > la matriz de datos que deseo devolver

Pero algo ocurre, pues en el formulario que llama intento usar los datos
recibidos en aCopias (variable que recoge los datos) y no hay manera, no


me
salen mas que mensajes de errores.

Si alguien tiene alguna idea se agradece enormemente.

Muchas gracias de antemano

Saludos
Gonzalo Moreno







Respuesta Responder a este mensaje
#7 Luis María Guayán
03/07/2005 - 23:48 | Informe spam
Puedes configurar que los parámetros se pasen por referencia con

SET UDFPARAMS TO REFERENCE
DO FORM opciones WITH Param1, Param2, ..., aCopias


Luis María Guayán
Tucumán, Argentina
________________________________
SysOp de www.PortalFox.com
Microsoft Visual FoxPro MVP
________________________________
La palabra imposible solo figura
en el diccionario de los tontos



"Gonzalo Moreno" escribió en el mensaje
news:%23j2qxc%
Siento haber tardado en responder sobre esto, estuve adelantando la
documentación de Ayuda sobre el programa en que estoy teniendo este problema.

Gracias a Alex y a Luis María por vuestras respuestas, siento deciros que no
me han funcionado. He hecho tal como me decíais, escribiendo el código:
DO FORM opciones WITH Param1, Param2, ..., @aCopias
pero cuando intento cerrar la ventana en que escribo este código, me sale el
mensaje de error "El comando contiene una frase o palabra clave no reconocida"
y me resalta esta línea de código. Este comando no permite ningún parámetro
con la arroba por delante, en cuanto la quito desaparece el mensaje de error y
la ventana se cierra normalmente.

De todos modos me comentáis que todo esto es para pasar la variable por
referencia en vez de por valor. Pero, corregidme si me equivoco, se entiende
que los parámetros pasados a un formulario con el comando DO ... WITH por
defecto se transfieren ya por referencia. Y esto es lo que leo en la
documentación de Ayuda de VFP8 cuando leo la ayuda del comando SET UDFPARMS:
"Observaciones: De forma predeterminada, las variables se transfieren por
valor a una función definida por el usuario. (Las variables transferidas a
procedimientos con DO ... WITH se transfieren por referencia)"

¿Qué mas puedo intentar entonces?
Muchas gracias.

Saludos
Gonzalo Moreno



"Luis María Guayán" escribió en el mensaje
news:
Prueba de pasar la matriz por referencia:

(quita el código del metodo Unload y agrega el nuevo parametro a la lista
del método Init)

DIMENSION aCopias(1)
DO FORM opciones WITH Param1, Param2, ..., @aCopias
FOR ln = 1 TO ALEN(aCopias)
? aCopias(ln)
ENDFOR


Luis María Guayán
Tucumán, Argentina
________________________________
SysOp de www.PortalFox.com
Microsoft Visual FoxPro MVP
________________________________
La palabra imposible solo figura
en el diccionario de los tontos


"Erik Weissman" escribió en el mensaje
news:
Un saludo para todos.

Pido por favor, ayuda con lo siguiente.

Desde un formulario modal deseo devolver una matriz unidimensional de tres
filas. Hago lo siguiente:

1) En el formulario que lo llama, el codigo es
DO FORM opciones WITH parámetros ... TO aCopias

2) En el evento Unload del formulario modal "opciones" esta el codigo
RETURN Thisform.aValores > la matriz de datos que deseo devolver

Pero algo ocurre, pues en el formulario que llama intento usar los datos
recibidos en aCopias (variable que recoge los datos) y no hay manera, no


me
salen mas que mensajes de errores.

Si alguien tiene alguna idea se agradece enormemente.

Muchas gracias de antemano

Saludos
Gonzalo Moreno











Respuesta Responder a este mensaje
#8 Gonzalo Moreno
07/07/2005 - 19:36 | Informe spam
OK, FUNCIONA

Gracias a todos de nuevo.

Saludos
Gonzalo Moreno



"Luis María Guayán" escribió en el mensaje
news:
Puedes configurar que los parámetros se pasen por referencia con

SET UDFPARAMS TO REFERENCE
DO FORM opciones WITH Param1, Param2, ..., aCopias


Luis María Guayán
Tucumán, Argentina
________________________________
SysOp de www.PortalFox.com
Microsoft Visual FoxPro MVP
________________________________
La palabra imposible solo figura
en el diccionario de los tontos



"Gonzalo Moreno" escribió en el mensaje
news:%23j2qxc%
Siento haber tardado en responder sobre esto, estuve adelantando la
documentación de Ayuda sobre el programa en que estoy teniendo este
problema.

Gracias a Alex y a Luis María por vuestras respuestas, siento deciros que
no me han funcionado. He hecho tal como me decíais, escribiendo el
código:
DO FORM opciones WITH Param1, Param2, ..., @aCopias
pero cuando intento cerrar la ventana en que escribo este código, me sale
el mensaje de error "El comando contiene una frase o palabra clave no
reconocida" y me resalta esta línea de código. Este comando no permite
ningún parámetro con la arroba por delante, en cuanto la quito desaparece
el mensaje de error y la ventana se cierra normalmente.

De todos modos me comentáis que todo esto es para pasar la variable por
referencia en vez de por valor. Pero, corregidme si me equivoco, se
entiende que los parámetros pasados a un formulario con el comando DO ...
WITH por defecto se transfieren ya por referencia. Y esto es lo que leo
en la documentación de Ayuda de VFP8 cuando leo la ayuda del comando SET
UDFPARMS:
"Observaciones: De forma predeterminada, las variables se transfieren por
valor a una función definida por el usuario. (Las variables transferidas
a procedimientos con DO ... WITH se transfieren por referencia)"

¿Qué mas puedo intentar entonces?
Muchas gracias.

Saludos
Gonzalo Moreno



"Luis María Guayán" escribió en el mensaje
news:
Prueba de pasar la matriz por referencia:

(quita el código del metodo Unload y agrega el nuevo parametro a la
lista
del método Init)

DIMENSION aCopias(1)
DO FORM opciones WITH Param1, Param2, ..., @aCopias
FOR ln = 1 TO ALEN(aCopias)
? aCopias(ln)
ENDFOR


Luis María Guayán
Tucumán, Argentina
________________________________
SysOp de www.PortalFox.com
Microsoft Visual FoxPro MVP
________________________________
La palabra imposible solo figura
en el diccionario de los tontos


"Erik Weissman" escribió en el mensaje
news:
Un saludo para todos.

Pido por favor, ayuda con lo siguiente.

Desde un formulario modal deseo devolver una matriz unidimensional de
tres
filas. Hago lo siguiente:

1) En el formulario que lo llama, el codigo es
DO FORM opciones WITH parámetros ... TO aCopias

2) En el evento Unload del formulario modal "opciones" esta el codigo
RETURN Thisform.aValores > la matriz de datos que deseo
devolver

Pero algo ocurre, pues en el formulario que llama intento usar los
datos
recibidos en aCopias (variable que recoge los datos) y no hay manera,
no


me
salen mas que mensajes de errores.

Si alguien tiene alguna idea se agradece enormemente.

Muchas gracias de antemano

Saludos
Gonzalo Moreno















email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida