Page 1 of 1

Menu popup no me ejecuta como quiero

Posted: Fri Sep 09, 2016 8:40 am
by goosfancito
Hola.
Tengo esto:

Code: Select all

   Menu oMenu popup

   EndMenu

   FOR nItem := 1 TO Len( ::aUltimosProyectos )
      cFile := ::aultimosProyectos[ nItem ][ 1 ]
      cB:= ::aUltimosProyectos[ nItem ][ 2 ]
      oMenu:ADD( TMenuItem():New( cB,,,, { || MsgInfo( cfile ), ::cargarproyecto( cB ) } ), .F. )
   NEXT nItem
 
pero cada vez que va a ::cargaProyecto(cb) el valor de cb siempre es el mismo,
como hago para que cambie' que estoy haciendo mal en la definicion ?

gracias.

Re: Menu popup no me ejecuta como quiero

Posted: Fri Sep 09, 2016 10:55 am
by Mike Serra
Gustavo, buenas tardes:

Creo que el problema está en que necesitas usar "detached locals". Busca en el foro con esa descripción y creo que podrás resolver el problema.

Un Saludo,

Re: Menu popup no me ejecuta como quiero

Posted: Fri Sep 09, 2016 11:00 am
by Mike Serra

Re: Menu popup no me ejecuta como quiero

Posted: Fri Sep 09, 2016 11:34 am
by goosfancito
ahora lo veo.

GRACIAS!

Re: Menu popup no me ejecuta como quiero

Posted: Sat Sep 10, 2016 10:43 am
by goosfancito
Sigue sin funcionar.

He probado:

Code: Select all

for nItem:= 1 to 5
     ...
     oMenu:ADD( TMenuItem():New( cB,,,, { || ::cargarproyecto( ::bloquear(cFile )) } ), .F. )
...

METHOD bloquear(cFile)
   RETURN {||cFile}
 
y luego hago

Code: Select all

method cargarProyecto(cFile)
    cAux:=eval(cFile)
    ? cAux
    ...

 
y siempre devuelve el mismo valor,

Re: Menu popup no me ejecuta como quiero

Posted: Sat Sep 10, 2016 4:09 pm
by RenOmaS

Code: Select all

for nItem:= 1 to 5
     ...
 //    oMenu:ADD( TMenuItem():New( cB,,,, { || ::cargarproyecto( ::bloquear(cFile )) } ), .F. )
                 MENUITEM oItem PROMPT cB OF oMenu ;
                          BLOCK { |o| ::cargarproyecto( ::bloquear( o:Cargo )) } 
                oItem:Cargo := cFile
...

METHOD bloquear(cFile)
   RETURN {||cFile}