Modificar un Menú de FoxPro

740 views
Skip to first unread message

Antonio Damigo

unread,
Nov 12, 2023, 2:10:41 PM11/12/23
to Comunidad de Visual Foxpro en Español

Intento modificar un menú hecho con el generador de Menús Visual FoxPro cambiando el estilo de fuente, el tamaño y el color.  

Esto lo hago poniendo en la condición Saltar por: .F. FONT "tahoma", 12. COLOR RGB(0,0,225,240,240,240)  Azul sobre gris claro.  Pero solo consigo que funcione bien  el estilo y el tamaño de la fuente en los submenús, pero no los colores.  En el menú principal no consigo que cambie nada.

No sé si esto puede estar relacionado con que el generador de menús, en el fichero .MPR, introduce COLOR SCHEME 3 en la elaboración (DEFINE PAD) del menú principal y COLOR SCHEME 4 en la elaboración (DEFINE POPUP) de los submenús. Pero no sé como puedo cambiarlo desde el generador de menús.

Agradecería mucho que alguien me ayudara a resolverlo.

Saludos.

integral

unread,
Nov 12, 2023, 4:21:27 PM11/12/23
to Comunidad de Visual Foxpro en Español
Que tal :

Un tiempo atrás se trato el tema aquí en el foro. Pero encontré este otro link que te puede servir de mucho.


Saludos,

Integral
(Lima-Perú)

Antonio Damigo

unread,
Nov 13, 2023, 11:01:10 AM11/13/23
to Comunidad de Visual Foxpro en Español
Muchas gracias. Pero ya había visitado ese enlace que me pones, y tras leerlo me decidí a exponer el problema aquí por si alguien tenía una solución más clara.

masf...@hotmail.com

unread,
Nov 14, 2023, 1:26:13 PM11/14/23
to Comunidad de Visual Foxpro en Español
saludados:
en vfp se puede pone cualquier color a una barra de menu con:
define bar nn of mipopup promp "miprom" color     ,    rgb(0,0,0,255,128,0)   &&  naranja  por ejemplo  (no olvidar la coma antes de rgb....)

Antonio Damigo

unread,
Nov 16, 2023, 7:00:00 AM11/16/23
to Comunidad de Visual Foxpro en Español
Muchas gracias. Sí, efectivamente, es como dices, esa parte la he solucionado con el generador de menús, poniendo en la condición Saltar por el color y la fuente, y sale todo bien. El problema está en el menú superior (Define pad) aquí pongo también la misma condición el Saltar por del generador de menús y da un error. Si elimino de la condición el color, y dejo la fuente, no da error, pero no sale la fuente ni el tamaño puesto, se queda como si nada.

HernanCano

unread,
Nov 16, 2023, 11:23:37 AM11/16/23
to Comunidad de Visual Foxpro en Español
El comando DEFINE PAD sì tiene FONT, STYLE, COLOR entre sus cláusulas.

Debes estar escribiendo mal.

Por favor muestra una imágen del error.

HernanCano

unread,
Nov 16, 2023, 11:24:35 AM11/16/23
to Comunidad de Visual Foxpro en Español
borable.png
borable.png

Antonio Damigo

unread,
Nov 16, 2023, 2:23:02 PM11/16/23
to Comunidad de Visual Foxpro en Español

Gracias por tu respuesta. 

Si, ya sé que el DEFINE PAD lleva las cláusulas FONT, STYLE y COLOR.  El problema está en yo hago el menú con el generador de FoxPro. Para poner el color en un barra (DEFINE BAR) es fácil, basta con poner en el apartado SALTAR POR:  la fuente, el tamaño  el color, ( por ejemplo: .F. FONT  "calibri", 11   COLOR RGB(128,128,128,240,240,240), RGB(255,128,0,240,240,240) )  y todo sale correctamente.

Cuando escribo lo mismo en el apartado SALTAR POR: del menú superior (DEFINE PAD), es entonces cuando me sale un error porque el generador crea su propio color ( COLOR SCHEME 3), y por lo tanto se duplica la cláusula COLOR con la que pongo en el apartado SALTAR POR. Si dejo solo la fuente y el tamaño no se genera ningún error, pero no hace ningún caso de lo escrito.

Antonio Damigo

unread,
Nov 16, 2023, 2:28:21 PM11/16/23
to Comunidad de Visual Foxpro en Español
Este es el error que muestra el compilar de FoxPro

"Compilando c:\vfpapli\dietasymas20\mi_menu.mpr
DEFINE PAD _6rd17rspr OF _MSYSMENU PROMPT "\<Archivo" COLOR SCHEME 3  KEY ALT+A, ""  FONT  "calibri", 11   COLOR RGB(128,128,128,240,240,240), RGB(255,128,0,240,240,240)
Error en la línea 31: El comando contiene una frase o palabra clave no reconocida."


Zarlu

unread,
Nov 16, 2023, 3:55:15 PM11/16/23
to Comunidad de Visual Foxpro en Español
Buenas tardes fotografia.adc !

No soy versado en el tema, pero observo dos veces el parámetro COLOR y dos veces RGB()
DEFINE PAD _6rd17rspr OF _MSYSMENU PROMPT "\<Archivo" COLOR SCHEME 3  KEY ALT+A, ""  FONT  "calibri", 11   COLOR RGB(128,128,128,240,240,240), RGB(255,128,0,240,240,240)

Suerte
zarlu
Chetumal, Quintana Roo, México

Antonio Damigo

unread,
Nov 17, 2023, 5:49:50 AM11/17/23
to Comunidad de Visual Foxpro en Español
Hola Zarlu. Gracias por tu interés.

Si, efectivamente, eso es lo que le indiqué al compañero HernanCano en el mensaje anterior al que te refieres. Ese mensaje  al que te estás refiriendo muestra la respuesta de Error en pantalla  que da el compilador de FoxPro por haber indicado en la opción del SALTAR POR del menú principal (Barra de Menús) lo mismo que indiqué en la opción de SALTAR POR de una de las opciones de un submenú.  Lo que no entiendo es por qué en el menú principal da error y en el submenú no lo da.
Lo que observo, por la respuesta de error del compilador,  es que el compilador pone la cláusula COLOR en el menú principal  y al ponerla yo en la condición SALTAR POR, se duplica y da error. En cambio, esto no sucede cuando lo hago en un submenú.

HernanCano

unread,
Nov 17, 2023, 8:48:06 AM11/17/23
to Comunidad de Visual Foxpro en Español
Tip gratuito: Después de generar el .MPR, edita el .MPR y suprime los DOLOR dobles.

VFP es una nota !!!

Antonio Damigo

unread,
Nov 18, 2023, 3:38:31 PM11/18/23
to Comunidad de Visual Foxpro en Español

Muchas gracias por su interés, HernanCano

Esa solución que me propones es imposible por dos motivos:

Primero: porque el .MPR no se genera con COLOR dobles, ya que se produce un error de compilación avisando del duplicado antes de su generación.

Segundo: en DEFINE PAD, el .MPR solo toma la cláusula COLOR que pone el generador de menús, y si le pongo una cláusula COLOR en la condición SALTAR POR, da error por duplicado con la que él genera. Si no la pongo, no da ningún error y genera el ejecutable con el color que el generador pone. Si edito el .MPR con posterioridad a la generación del ejecutable, no servirá de nada, seguirá con el color que él generó, porque el ejecutable no lee el .MPR. Es más, puedo hasta borrar o renombrar el .MPR que no se producirá ningún fallo en la ejecución.

Saludos.

HernanCano

unread,
Nov 18, 2023, 11:42:24 PM11/18/23
to Comunidad de Visual Foxpro en Español
>>> ...  el ejecutable no lee el .MPR...

Lo lamento: no te creo.

Una cosa es que el MPR se compile a MPX, y que tú quizá compiles a .APP o a .EXE.

Pero el .MPR sí es tomado por la primera compilación que se haga a .MPX, y de ahí a .APP o a .EXE.

El .MPR sí se puede borrar, pero entonces queda el .MPX.
Pero si compilas a .APP o a .EXE, es muy probable que el .MPX quede dentro del .APP o del .EXE.

Pero evidentemente hay escenario de escenarios.... pero de ahí a que no use el .MPR... ññaaaaaaaa........................

Antonio Damigo

unread,
Nov 19, 2023, 6:33:31 AM11/19/23
to Comunidad de Visual Foxpro en Español

Sr. HenanCanon, le luego que No ponga en mi escritura palabras que NO he escrito.  Lea bien lo que escribo, por favor.

No he dicho que no use el .MPR, esas son palabras suyas, no mías. Le copio literalmente lo que escribí “ el ejecutable no lee el .MPR. Es más, puedo hasta borrar o renombrar el .MPR que no se producirá ningún fallo en la ejecución.” Eso es justamente lo que escribí, lo de que no use el .MPR es cosa suya.  

Claro que uso el  .MPR, es necesario para generar el ejecutable, de hecho lo llamo en mi código. Pero cada vez que se genera el ejecutable se genera también un nuevo .MPR que queda dentro de él, por lo que es inútil modificarlo con posterioridad. Una vez generado el ejecutable ya que no vuelve a leer el .MPR (Eso fue lo que escribí).

También podría modificarlo antes de generar el ejecutable, pero es igualmente inútil, porque durante la generación del ejecutable se sobrescribe el  .MPR que he modificado y deja la cláusula COLOR original.

Y si no me cree, es problema suyo. Además el problema no es si uso el .MPR o no, el problema es por qué, si con el generador de menús, en la condición SALTAR POR de DEFINE BAR puedo poner la cláusula COLOR y funciona, ¿cómo tengo que hacerlo en DEFINE PAD sin que me de error de compilación?.

HernanCano

unread,
Nov 19, 2023, 5:01:02 PM11/19/23
to Comunidad de Visual Foxpro en Español
Es correcto todo lo que dices.

Pero es que debes entender:

1. Si necesitas que la cláusula COLOR use un argumento/parámetro difernete del que se aplica con el MODIFY MENU, pues tienes que hacer el ajuste en el 
.MPR generado: no sobre el MNX/MNT dentro del MODIFY MENU por que --como ya has descubierto-- no se puede hace el ajuste el COLOR.

2. Si necesitas hacer el ajuste de COLOR dentro del MODIFY MENU, pues entonces no lo puedes hacer. ¿Por qué? Simple y llenamente por que en VFP no se puede (vía MODIFY MENU).

¿Hay solución? Sí: vía MODIFY COMMAND el menú.MPR generado.

¿Es un imposible para tú? Está bien, pero solución sí hay, y es ésa.
------------------------------------------------------------------
¿Quieres que juguemos con palabras? Juguemos.

Efectivamente tú usate "no lee el .MPR"; si bien yo dije que dijiste "no usa el .MPR" debes aceptar que es lo mismo.

La cuestión es "si tú dices que no lee el .MPR".............. no te creo: Prueba a ponerle el COLOR que necesitas y sigue los proc normales y nos dices si funciona o no.
------------------------------------------------------------------

masf...@hotmail.com

unread,
Nov 19, 2023, 8:38:55 PM11/19/23
to Comunidad de Visual Foxpro en Español
Los programas .mpr se generan gracias a un aplicativo que se distribuye con vfp:   genmenu.prg
se puede estudiar este programa y ajustarlo a tus necesidades. Con lo que puedes quitarle o ponerle nuevas caracteristicas al menu generado (aunque puede traer algo+ a la crisis existencial y tra la la la, la la la)

Antonio Damigo

unread,
Nov 20, 2023, 5:35:16 AM11/20/23
to Comunidad de Visual Foxpro en Español

No sé si no me expreso bien o es que no me entiendes.

“2. Si necesitas hacer el ajuste de COLOR dentro del MODIFY MENU, pues entonces no lo puedes hacer. ¿Por qué? Simple y llenamente por que en VFP no se puede (vía MODIFY MENU).”

Sí se puede ajustar el color con MODIFY MENU, pero el color de una barra, DEFINE BAR, y se hace en la opción SALTAR POR. Esa parte me funciona.  Lo que no logro modificar es el DEFINE PAD (El menú superior). Ahí no funcional.

¿Hay solución? Sí: vía MODIFY COMMAND el menú.MPR generado.

Te repito lo mismo que en el anterior. Cada vez que se genera un archivo ejecutable, se genera un nuevo .MPR. He modificado el .MPR en dos situaciones, la primera antes de generar el ejecutable, y la segunda después de generar el ejecutable.

 Si modifico el .MPR antes de generar el ejecutable, cambiando en el DEFINE PAD la cláusula COLOR con los colores que deseo, resulta que al generar el ejecutable,  me modifica el .MPR y vuelve a poner los colores que tiene por defecto.

Cuando modifico el .MPR después de generar el ejecutable, no sirve de nada porque el ejecutable no lee,  o si prefieres,  no usa el .MPR después de generado.

El archivo .MPR es necesario para generar el ejecutable, pero una vez generado no se lee o no se usa, porque el ejecutable ya lleva todas las instrucciones de este archivo. La prueba la tienes que cuando instalas un programa a un cliente no le pones el .MPR, solo el ejecutable y las librerías necesarias.

Antonio Damigo

unread,
Nov 20, 2023, 5:37:41 AM11/20/23
to Comunidad de Visual Foxpro en Español

Muchas gracias, masf . Quizás por ahí pueda encontrar la solución. Me pondré a investigar el genmenu.prg a ver si puedo descifrarlo para ver dónde hay que tocar.

HernanCano

unread,
Nov 20, 2023, 7:04:27 AM11/20/23
to Comunidad de Visual Foxpro en Español
>>>  El archivo .MPR es necesario para generar el ejecutable, pero una vez generado no se lee o no se usa, porque el ejecutable ya lleva todas las instrucciones de este archivo.

Sí.

>>>  Cuando modifico el .MPR después de generar el ejecutable, no sirve de nada porque el ejecutable no lee,  o si prefieres,  no usa el .MPR después de generado.

El .MPR no se modifica después de generar el ejecutable, porque: ya no sirve modificarlo: el ejecutable ya está generado.
------------------------------------------------
Mira: veámoslo desde otro punto de vista: NO USES EL MNX !!!!!!!!!!!!!
((de ser necesario: QUIITALO DEL PROYECTO !!!!!! si es que estás usando un proyecto; y si no estás usando un proyecto, entonces ya no uses el MNX: haz los cambios en el .MPR último que tengas, desechas el MNX (binario), y continúas con el .MPR (de texto) !!!!!!!!!!!))
------------------------------------------------

Gerardo Cagnola

unread,
Nov 20, 2023, 7:39:36 AM11/20/23
to publice...@googlegroups.com
muchos años utilicé genmenuX, mas "poderoso" que el "standard"...

--
Blog de la Comunidad Visual FoxPro en Español http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/3607acc5-5532-416c-9ce8-38431077b1f1n%40googlegroups.com.

Zarlu

unread,
Nov 21, 2023, 12:04:14 PM11/21/23
to Comunidad de Visual Foxpro en Español
Buenos días fotografía.abc!

Según entiendo el "menú principal" son las opciones que se definen con DEFINE PAD.
Lo que dice la ayuda de VFP para DEFINE PAD:
La cláusula FONT se ignora para los títulos de menú agregados al menú del sistema de Visual FoxPro _MSYSMENU. Tenga en cuenta que el Diseñador de menús utiliza el menú del sistema de Visual FoxPro.

Lo que quizá implica que para obtener lo que deseas habría que crear el menú por código.

Respecto del color sigo indagando...

Suerte
zarlu
Chetumal, Quintana Roo, México

Zarlu

unread,
Nov 21, 2023, 6:16:03 PM11/21/23
to Comunidad de Visual Foxpro en Español
Qué tal fotografía.abc!

De mis pruebas te comento:

El generador de menú usa DEFINE MENU con el parámetro BAR
La ayuda de VFP dice
Crea una barra de menú que se comporta como la barra de menú del sistema Visual FoxPro. La barra de menú tiene estas características: Se dibuja una barra de menú horizontal de una línea de alto a lo ancho de la ventana principal de Visual FoxPro o de la ventana definida por el usuario en la que se encuentra.

Entonces según entiendo no surtirá ningún efecto el cambio de fuente/color al incluir el parametro BAR por las medidas y características que adopta
También la ayuda menciona que los colores son determinados por SCHEME 2, trate de cambiar eso, pero no pude
*--------------------------------
Pude modificar el .MPR pero al incluir "DO menu.mpr"  y generar el ejecutable VFP pide la tabla y memo del menú. Al incluirlos genera de nuevo el .mpr y se pierde lo modificado.
Entonces lo que hice fue modificar el .mpr, guardarlo como .prg y ejecutarlo con "Do menu.prg With This, .t."

Mi conclusión...
Se puede usar el generador para facilitar la tarea de creación y luego entonces incluir fuentes y colores al DEFINE PAD y guardarlo y ejecutarlo como prg.
Sin título.png

Suerte
zarlu
Chetumal, Quintana Roo, México



Antonio Damigo

unread,
Sep 20, 2024, 6:49:04 AM9/20/24
to Comunidad de Visual Foxpro en Español
Muchísimas Gracias, Zarlo.  Entendiste bien cual era mi problema y me parece que lo has solucionado. Lo de cambiar "Do menu.mpr" por "Do menu.prg With This, .t."  es una solución que no se me había ocurrido. Voy a probarla a ver qué tal me va.
Te comentaré el resultado. Muy agradecido.
Reply all
Reply to author
Forward
0 new messages