FoxPro/Visual FoxPro - Menu

   
Vista:

Menu

Publicado por Humberto (83 intervenciones) el 11/09/2010 21:34:38
Hola Chicos.

Nuevamente molestandolos a Uds. para ver si me dan una mano para sacar esta duda.

He creado un "Menú Contextual"; dentro del mismo tengo una opción denominada. Parámetros.

Al ponerle thisform.image.picture="xxx.jpg". Me da un mensaje de error.

¿Me pueden explicar como podría resolverlo?

Les mando mi acostumbrado GRAN ABRAZO desde Gualeguaychu, Argentina
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
Imágen de perfil de XXX

Menu

Publicado por XXX (1367 intervenciones) el 11/09/2010 22:06:07
hay adivinos por aca?
Como quieres que se te ayude si ni siquiera pones el mensaje de error.
Supongo que no le estas dando el o los parametros requeridos.
grrrrrrrrrrrrrrrrrrr
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:Menu

Publicado por Humberto (83 intervenciones) el 11/09/2010 22:21:04
Uy !! mil perdones XXX

tenés toda la razón. El mensaje es el siguiente.
-------------------------------------------------------------
ERROR DE PROGRAMA
Thisform solo puede usarse en un METODO.
-------------------------------------------------------------

O sea comprendo lo que ocurre. Segúne esto yo no puedo colocar en una opcion de mi menú contextual.

Ej. Parámetros > Thisform.refresh()

Pero la pregunta es ¿como debo hacer si yo DESEARA hacer; un refresh() desde una opcion del menú?

Gracias al menos por leerme y no te enojes por favor.
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
Imágen de perfil de Mauricio

Menu

Publicado por Mauricio (1367 intervenciones) el 12/09/2010 00:24:59
Humberto, dentro de las opciones de menu, no existe en ningun lado la opcion de Parameters, seria mejor que explicaras que deseas hacer, pues si dentro de las opciones de menu quieres poner Thisform.refresh() , esto solo funciona dentro de un FORM nunca fuera del FORM, creo que lo que quieres hacer es refrescar una variable capturada dentro de un FORM, caso contrario puedes ampliar un poco mas lo que deseas hacer?
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:Menu

Publicado por Humberto (83 intervenciones) el 12/09/2010 00:53:16
Hola Mauricio

Una vez mas debo pedirles mis mas sinceras disculpas. No es que la quiera complicar.
Pero lo que necesito es eso.

1. Tengo un formulario con un menu contextual.
2. En una de esas opciones DESEARÍA ejecutar un comando de ese formulario

Ej. Ponele que la opcion diga ZOOM
y que al hacer clic en ese item debería ejecutar estas lineas

thisform.height=480
thisform.top=1
thisform.left=1
thisform.width=640

Ahora bien... Es como vos decis YO TAMBIEN COMPRENDO QUE NO PUEDO.

Mi pregunta es... sabiendo que no se puede ¿Como logro ejecutar estas lineas desde una opcion de mi menu contextual?.

Espero que logre hacerme comprender y me puedan explicar esta solucion... si la hubiera.

Muchas Gracias y mil perdones si no logro hacerme comprender mejor.
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
Imágen de perfil de Mauricio

Menu

Publicado por Mauricio (1367 intervenciones) el 12/09/2010 17:46:28
Puedes intentar hacerlo desde el menu contextual con variables:
Desde el menu contextual le das el comando:
DO FORM mi_form WITH vheight, vtop, vleft, vwidth
En donde llevaran los siguientes valores:
vheight = 480
vtop = 1
vleft = 1
vwidth = 640
Pienso que de esta manera te podria funcionar!!!!!!!
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:Menu

Publicado por Humberto (83 intervenciones) el 12/09/2010 22:01:28
Muchisimas Gracias

Finalmente lo he logrado resolver. Y para el caso que otro se le ocurra los mismo...

Aqui esta la solución

En la opcion del Menú en lugar de escribir

\<Parámetros..... do form param

poner

\<Parámetros.... do form param with 1
\-
\<Otra opcion..... do form nuevo with 2

Ahora en el Init del formulario al ser llamado por el menu de su mismo formulario busca su INIT. Sin volver a cargarlo dos veces.

Ahora en el INIT deberemos poner:

Lparamters op_ext

if vartype(op_ext) <> "L"
...do case
.........case op_ext = 1
...................thisform...lo que se te ocurra
.........case op_ext = 2
...................thisform...lo que se te ocurra
...endcase
endif

Muchisimas Gracias a todos, y espero que el modo en que lo resolvi les pueda ser de ayuda en alguna oportunidad. Un gran Abrazo
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:Menu

Publicado por Juanma Cruz (508 intervenciones) el 13/09/2010 16:59:13
Un menú contextual, internamente se traduce como una tabla que compilada da origen a un PRG, aunque tú no lo veas.

Es ilegal intentar hacer una referencia a THIS, THISFORM, THISFORMSET dentro de un programa, aún si es llamado por un form. Sólo dentro de eventos o procedimientos del mismo form se pueden hacer ese tipo de referencias.

En todo caso, dentro de tu menú contextual sí podrias intentar referenciar a _SCREEN.ActiveForm

_screen.ActiveForm.Imagen1.Picture= "C:\LaImagen.jpg"

por ejemplo
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:Menu

Publicado por Humberto (1 intervención) el 13/09/2010 22:27:56
JuanMa
Más allá de resolverlo con la transferencia de valores como esta explicado en mi último mensaje. Has sido muy gentil por explicarnos este otro modo. Que sin lugar a dudas es mucho mas adecuado que mi solución "rebuscada".
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