Tengo un Menu PopUp y necesito llenar las opciones según un array...
Por ej. un Array de 3 opciones
aCarrecs := { "A", "B", "C" }
MENU oPopup POPUP
MENUITEM oMenuCanviCarrec TEXT ::aIdioma[44,AppData:nIdioma]
MENU
For n:=1 to Len(aCarrecs)
If Empty( aCarrecs[n] )
MENUITEM ::aIdioma[47,AppData:nIdioma] ACTION ::xCanviCarrecHora(" ")
Else
cF := aCarrecs[n]
MENUITEM aCarrecs[n] ACTION ::xCanviCarrecHora(cF)
EndIf
Next
ENDMENU
ENDMENU
RETURN Nil
....
METHOD xCanviCarrecHora( cF ) CLASS TFrmORAlbarans
MSGINFO( cF ) //Siempre muestra el valor del último elemento del Array en este caso "C"
RETURN Nil
Por lo visto el bloque ACTION del menu se carga cuando se ha finalizado el For...Next.
¿Como puedo saltar este pequeño inconveniente???
¿Alguna ayuda???
Gracias.
Un Saludo,
Xevi.
--
In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
oMenuPopUp bloque ACTION
oMenuPopUp bloque ACTION
Xevi,
Por lo visto el bloque ACTION del menu se carga cuando se ha finalizado el For...Next.
¿Como puedo saltar este pequeño inconveniente???
¿Alguna ayuda???
Lo que te está pasando es el típico caso de las "detached locals" que viene heredado de Clipper. Prueba así:
aCarrecs := { "A", "B", "C" }
MENU oPopup POPUP
MENUITEM oMenuCanviCarrec TEXT ::aIdioma[44,AppData:nIdioma]
MENU
For n:=1 to Len(aCarrecs)
If Empty( aCarrecs[n] )
MENUITEM ::aIdioma[47,AppData:nIdioma] ACTION ::xCanviCarrecHora(" ")
Else
cF := aCarrecs[n]
DetachLocal( Self, n, cF )
EndIf
Next
ENDMENU
ENDMENU
RETURN Nil
STATIC PROCEDURE DetachLocal( Self, n, cF )
MENUITEM aCarrecs[n] ACTION ::xCanviCarrecHora(cF)
RETURN
--
Un saludo,
José F. Giménez
--
Por lo visto el bloque ACTION del menu se carga cuando se ha finalizado el For...Next.
¿Como puedo saltar este pequeño inconveniente???
¿Alguna ayuda???
Lo que te está pasando es el típico caso de las "detached locals" que viene heredado de Clipper. Prueba así:
aCarrecs := { "A", "B", "C" }
MENU oPopup POPUP
MENUITEM oMenuCanviCarrec TEXT ::aIdioma[44,AppData:nIdioma]
MENU
For n:=1 to Len(aCarrecs)
If Empty( aCarrecs[n] )
MENUITEM ::aIdioma[47,AppData:nIdioma] ACTION ::xCanviCarrecHora(" ")
Else
cF := aCarrecs[n]
DetachLocal( Self, n, cF )
EndIf
Next
ENDMENU
ENDMENU
RETURN Nil
STATIC PROCEDURE DetachLocal( Self, n, cF )
MENUITEM aCarrecs[n] ACTION ::xCanviCarrecHora(cF)
RETURN
--
Un saludo,
José F. Giménez
--
oMenuPopUp bloque ACTION
Jose,
PERFECTO...
También lo he hecho funcionar, con unas notas que me pasaste hace ya tiempo, utilizando
MENU oMenu1
....
TMenuItem():Create( oMenu1,,, cF,, xCarrec(oSender,cF),, )
....
FUNCTION xCarrec(oSender,cF)
RETURN {|| oSender:oParent:oParent:oParent:xCanviCarrecHora(cF)}
Pero me parece mucho mas "limpio" este Código que me has escrito en este post.
Gracias.
Un Saludo,
Xevi.
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje news:43f34cc3$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
Xevi,
Por lo visto el bloque ACTION del menu se carga cuando se ha finalizado el For...Next.
¿Como puedo saltar este pequeño inconveniente???
¿Alguna ayuda???
Lo que te está pasando es el típico caso de las "detached locals" que viene heredado de Clipper. Prueba así:
aCarrecs := { "A", "B", "C" }
MENU oPopup POPUP
MENUITEM oMenuCanviCarrec TEXT ::aIdioma[44,AppData:nIdioma]
MENU
For n:=1 to Len(aCarrecs)
If Empty( aCarrecs[n] )
MENUITEM ::aIdioma[47,AppData:nIdioma] ACTION ::xCanviCarrecHora(" ")
Else
cF := aCarrecs[n]
DetachLocal( Self, n, cF )
EndIf
Next
ENDMENU
ENDMENU
RETURN Nil
STATIC PROCEDURE DetachLocal( Self, n, cF )
MENUITEM aCarrecs[n] ACTION ::xCanviCarrecHora(cF)
RETURN
--
Un saludo,
José F. Giménez
--
PERFECTO...
También lo he hecho funcionar, con unas notas que me pasaste hace ya tiempo, utilizando
MENU oMenu1
....
TMenuItem():Create( oMenu1,,, cF,, xCarrec(oSender,cF),, )
....
FUNCTION xCarrec(oSender,cF)
RETURN {|| oSender:oParent:oParent:oParent:xCanviCarrecHora(cF)}
Pero me parece mucho mas "limpio" este Código que me has escrito en este post.
Gracias.
Un Saludo,
Xevi.
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje news:43f34cc3$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
Xevi,
Por lo visto el bloque ACTION del menu se carga cuando se ha finalizado el For...Next.
¿Como puedo saltar este pequeño inconveniente???
¿Alguna ayuda???
Lo que te está pasando es el típico caso de las "detached locals" que viene heredado de Clipper. Prueba así:
aCarrecs := { "A", "B", "C" }
MENU oPopup POPUP
MENUITEM oMenuCanviCarrec TEXT ::aIdioma[44,AppData:nIdioma]
MENU
For n:=1 to Len(aCarrecs)
If Empty( aCarrecs[n] )
MENUITEM ::aIdioma[47,AppData:nIdioma] ACTION ::xCanviCarrecHora(" ")
Else
cF := aCarrecs[n]
DetachLocal( Self, n, cF )
EndIf
Next
ENDMENU
ENDMENU
RETURN Nil
STATIC PROCEDURE DetachLocal( Self, n, cF )
MENUITEM aCarrecs[n] ACTION ::xCanviCarrecHora(cF)
RETURN
--
Un saludo,
José F. Giménez
--