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.
sobre MENUS
-
- Mensajes: 532
- Registrado: Mié Feb 09, 2005 6:20 pm
sobre MENUS
Vamos a ver si me explico con claridad. Estoy tratando de forzar el menu
para que antes de ejecutar cualquiera de sus opciones, ejecute un metodo o
funcion de la clase-formulario en la-el cual se ha creado este menu. He
probado a hacerlo con EvalWhen pero no es un evento es un metodo. Como
tendria que hacerlo ?. Ojo no puedo creo que me sirva el evento onclick pues
estoy leyendo el menu desde una dbf con sus actions correspondientes que son
clases cuyo nombre esta grabado en la propia dbf.
Atentamente : Francisco Sanchez GERENTE GRUPO ST - Software TOTAL
para que antes de ejecutar cualquiera de sus opciones, ejecute un metodo o
funcion de la clase-formulario en la-el cual se ha creado este menu. He
probado a hacerlo con EvalWhen pero no es un evento es un metodo. Como
tendria que hacerlo ?. Ojo no puedo creo que me sirva el evento onclick pues
estoy leyendo el menu desde una dbf con sus actions correspondientes que son
clases cuyo nombre esta grabado en la propia dbf.
Atentamente : Francisco Sanchez GERENTE GRUPO ST - Software TOTAL
- ignacio
- Site Admin
- Mensajes: 9253
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
sobre MENUS
Francisco,
Si te he entendido bien, la idea es que se ejecute cierto código cada vez se
utilice una opción de menú y antes de que esta se ejecute. Es correcto?
Gracias
"Francisco Sanchez" <francisco@softwaretotal.biz> escribió en el mensaje
news:424b07f6$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Vamos a ver si me explico con claridad. Estoy tratando de forzar el menu
> para que antes de ejecutar cualquiera de sus opciones, ejecute un metodo o
> funcion de la clase-formulario en la-el cual se ha creado este menu. He
> probado a hacerlo con EvalWhen pero no es un evento es un metodo. Como
> tendria que hacerlo ?. Ojo no puedo creo que me sirva el evento onclick
> pues estoy leyendo el menu desde una dbf con sus actions correspondientes
> que son clases cuyo nombre esta grabado en la propia dbf.
>
>
> Atentamente : Francisco Sanchez GERENTE GRUPO ST - Software TOTAL
>
>
Si te he entendido bien, la idea es que se ejecute cierto código cada vez se
utilice una opción de menú y antes de que esta se ejecute. Es correcto?
Gracias
"Francisco Sanchez" <francisco@softwaretotal.biz> escribió en el mensaje
news:424b07f6$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Vamos a ver si me explico con claridad. Estoy tratando de forzar el menu
> para que antes de ejecutar cualquiera de sus opciones, ejecute un metodo o
> funcion de la clase-formulario en la-el cual se ha creado este menu. He
> probado a hacerlo con EvalWhen pero no es un evento es un metodo. Como
> tendria que hacerlo ?. Ojo no puedo creo que me sirva el evento onclick
> pues estoy leyendo el menu desde una dbf con sus actions correspondientes
> que son clases cuyo nombre esta grabado en la propia dbf.
>
>
> Atentamente : Francisco Sanchez GERENTE GRUPO ST - Software TOTAL
>
>
-
- Mensajes: 532
- Registrado: Mié Feb 09, 2005 6:20 pm
sobre MENUS
correctisimo.
Atentamente : Francisco Sanchez GERENTE GRUPO ST - Software TOTAL
"Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el mensaje
news:424ba949$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Francisco,
>
> Si te he entendido bien, la idea es que se ejecute cierto código cada vez
> se utilice una opción de menú y antes de que esta se ejecute. Es correcto?
>
> Gracias
>
> "Francisco Sanchez" <francisco@softwaretotal.biz> escribió en el mensaje
> news:424b07f6$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>> Vamos a ver si me explico con claridad. Estoy tratando de forzar el menu
>> para que antes de ejecutar cualquiera de sus opciones, ejecute un metodo
>> o funcion de la clase-formulario en la-el cual se ha creado este menu. He
>> probado a hacerlo con EvalWhen pero no es un evento es un metodo. Como
>> tendria que hacerlo ?. Ojo no puedo creo que me sirva el evento onclick
>> pues estoy leyendo el menu desde una dbf con sus actions correspondientes
>> que son clases cuyo nombre esta grabado en la propia dbf.
>>
>>
>> Atentamente : Francisco Sanchez GERENTE GRUPO ST - Software TOTAL
>>
>>
>
>
Atentamente : Francisco Sanchez GERENTE GRUPO ST - Software TOTAL
"Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el mensaje
news:424ba949$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Francisco,
>
> Si te he entendido bien, la idea es que se ejecute cierto código cada vez
> se utilice una opción de menú y antes de que esta se ejecute. Es correcto?
>
> Gracias
>
> "Francisco Sanchez" <francisco@softwaretotal.biz> escribió en el mensaje
> news:424b07f6$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>> Vamos a ver si me explico con claridad. Estoy tratando de forzar el menu
>> para que antes de ejecutar cualquiera de sus opciones, ejecute un metodo
>> o funcion de la clase-formulario en la-el cual se ha creado este menu. He
>> probado a hacerlo con EvalWhen pero no es un evento es un metodo. Como
>> tendria que hacerlo ?. Ojo no puedo creo que me sirva el evento onclick
>> pues estoy leyendo el menu desde una dbf con sus actions correspondientes
>> que son clases cuyo nombre esta grabado en la propia dbf.
>>
>>
>> Atentamente : Francisco Sanchez GERENTE GRUPO ST - Software TOTAL
>>
>>
>
>
- ignacio
- Site Admin
- Mensajes: 9253
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
sobre MENUS
Francisco,
No existe ningún evento especfico para ello, pero siempre puedes disparar
más de una opción en el ACTION del menú.
MENUITEM ... ACTION ( Funcion1(), Funcion2() )
Saludos,
"Francisco Sanchez" <francisco@softwaretotal.biz> escribió en el mensaje
news:424ba998$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> correctisimo.
>
> Atentamente : Francisco Sanchez GERENTE GRUPO ST - Software TOTAL
>
> "Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el mensaje
> news:424ba949$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>> Francisco,
>>
>> Si te he entendido bien, la idea es que se ejecute cierto código cada vez
>> se utilice una opción de menú y antes de que esta se ejecute. Es
>> correcto?
>>
>> Gracias
>>
>> "Francisco Sanchez" <francisco@softwaretotal.biz> escribió en el mensaje
>> news:424b07f6$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>>> Vamos a ver si me explico con claridad. Estoy tratando de forzar el menu
>>> para que antes de ejecutar cualquiera de sus opciones, ejecute un metodo
>>> o funcion de la clase-formulario en la-el cual se ha creado este menu.
>>> He probado a hacerlo con EvalWhen pero no es un evento es un metodo.
>>> Como tendria que hacerlo ?. Ojo no puedo creo que me sirva el evento
>>> onclick pues estoy leyendo el menu desde una dbf con sus actions
>>> correspondientes que son clases cuyo nombre esta grabado en la propia
>>> dbf.
>>>
>>>
>>> Atentamente : Francisco Sanchez GERENTE GRUPO ST - Software TOTAL
>>>
>>>
>>
>>
>
>
No existe ningún evento especfico para ello, pero siempre puedes disparar
más de una opción en el ACTION del menú.
MENUITEM ... ACTION ( Funcion1(), Funcion2() )
Saludos,
"Francisco Sanchez" <francisco@softwaretotal.biz> escribió en el mensaje
news:424ba998$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> correctisimo.
>
> Atentamente : Francisco Sanchez GERENTE GRUPO ST - Software TOTAL
>
> "Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el mensaje
> news:424ba949$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>> Francisco,
>>
>> Si te he entendido bien, la idea es que se ejecute cierto código cada vez
>> se utilice una opción de menú y antes de que esta se ejecute. Es
>> correcto?
>>
>> Gracias
>>
>> "Francisco Sanchez" <francisco@softwaretotal.biz> escribió en el mensaje
>> news:424b07f6$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>>> Vamos a ver si me explico con claridad. Estoy tratando de forzar el menu
>>> para que antes de ejecutar cualquiera de sus opciones, ejecute un metodo
>>> o funcion de la clase-formulario en la-el cual se ha creado este menu.
>>> He probado a hacerlo con EvalWhen pero no es un evento es un metodo.
>>> Como tendria que hacerlo ?. Ojo no puedo creo que me sirva el evento
>>> onclick pues estoy leyendo el menu desde una dbf con sus actions
>>> correspondientes que son clases cuyo nombre esta grabado en la propia
>>> dbf.
>>>
>>>
>>> Atentamente : Francisco Sanchez GERENTE GRUPO ST - Software TOTAL
>>>
>>>
>>
>>
>
>
sobre MENUS
Paco,
prueba lo siguiente:
//---------------------------------------------------------- --------------------
METHOD WMCommand( nWParam, nLParam ) CLASS TPrincipal
IF nLParam == 0
LogDebug( "Se está ejecutando una opción del menú" )
ENDIF
RETURN Super:WMCommand( nWParam, nLParam )
//---------------------------------------------------------- --------------------
La idea es "interceptar" el mensaje WM_COMMAND en el formulario donde está
el menú. Este mensaje es el que se recibe cada vez que se selecciona una
opción del menú. Pero ojo, también se recibe en algunos otros casos. En
general, si nLParam es 0, es que se ha seleccionado una opción del menú.
Es muy importante que el código que ejecutes aquí sea lo más liviano
posible, y que no interfiera con el normal procesamiento de este mensaje.
P.ej., no intentes mostrar otro formulario desde aquí, porque seguramente
vas a provocar una serie de "efectos secundarios".
También es muy importante que termines llamando al método Super, para
permitir a Xailer procesar el mensaje. De lo contrario, nunca se ejecutará
el código asociado a cada opción del menú.
Como aclaración: en Xailer, los formularios son siempre clases derivadas de
TForm, y por lo tanto heredan todos los métodos, propiedades y eventos de
las clases anteriores de la jerarquía. Al mismo tiempo, siempre podemos
"sobrecargar" cualquiera de esos métodos, y hacer lo que queramos ahí, y
terminar llamando al método super o no según nuestras necesidades. Esta es
la gran ventaja de la OOP
Por otro lado, cuando la aplicación recibe un mensaje de windows (WM_?????),
Xailer se encarga de ejecutar un método, siempre que exista claro, con ese
mismo nombre (pero sin el guión de subrayado) del objeto al que va
destinado. Esto quiere decir que p.ej. podemos crear los métodos
WMInitMenu(), WMPaint(), WMSysKeyDown() o cualquier otro que queramos, y
Xailer se encargará de ejecutarlo cuando se reciba el mensaje
correspondiente. Por supuesto, los parámetros que se reciben son siempre
WParam y LParam, y habrá que consultar la documentación del API para saber
qué tenemos que hacer y qué tenemos que retornar.
--
Un saludo,
José F. Giménez
prueba lo siguiente:
//---------------------------------------------------------- --------------------
METHOD WMCommand( nWParam, nLParam ) CLASS TPrincipal
IF nLParam == 0
LogDebug( "Se está ejecutando una opción del menú" )
ENDIF
RETURN Super:WMCommand( nWParam, nLParam )
//---------------------------------------------------------- --------------------
La idea es "interceptar" el mensaje WM_COMMAND en el formulario donde está
el menú. Este mensaje es el que se recibe cada vez que se selecciona una
opción del menú. Pero ojo, también se recibe en algunos otros casos. En
general, si nLParam es 0, es que se ha seleccionado una opción del menú.
Es muy importante que el código que ejecutes aquí sea lo más liviano
posible, y que no interfiera con el normal procesamiento de este mensaje.
P.ej., no intentes mostrar otro formulario desde aquí, porque seguramente
vas a provocar una serie de "efectos secundarios".
También es muy importante que termines llamando al método Super, para
permitir a Xailer procesar el mensaje. De lo contrario, nunca se ejecutará
el código asociado a cada opción del menú.
Como aclaración: en Xailer, los formularios son siempre clases derivadas de
TForm, y por lo tanto heredan todos los métodos, propiedades y eventos de
las clases anteriores de la jerarquía. Al mismo tiempo, siempre podemos
"sobrecargar" cualquiera de esos métodos, y hacer lo que queramos ahí, y
terminar llamando al método super o no según nuestras necesidades. Esta es
la gran ventaja de la OOP
Por otro lado, cuando la aplicación recibe un mensaje de windows (WM_?????),
Xailer se encarga de ejecutar un método, siempre que exista claro, con ese
mismo nombre (pero sin el guión de subrayado) del objeto al que va
destinado. Esto quiere decir que p.ej. podemos crear los métodos
WMInitMenu(), WMPaint(), WMSysKeyDown() o cualquier otro que queramos, y
Xailer se encargará de ejecutarlo cuando se reciba el mensaje
correspondiente. Por supuesto, los parámetros que se reciben son siempre
WParam y LParam, y habrá que consultar la documentación del API para saber
qué tenemos que hacer y qué tenemos que retornar.
--
Un saludo,
José F. Giménez
-
- Mensajes: 532
- Registrado: Mié Feb 09, 2005 6:20 pm
sobre MENUS
ya pero eso no puedo hacerlo pues son muchas clases independientes las
implicadas y no estan disponibles asi como asi los metodos correspondientes
que quiero ejecutar antes del action del menu el cual estoy leyendo del
campo de una dbf.
Atentamente : Francisco Sanchez GERENTE GRUPO ST - Software TOTAL -
implicadas y no estan disponibles asi como asi los metodos correspondientes
que quiero ejecutar antes del action del menu el cual estoy leyendo del
campo de una dbf.
Atentamente : Francisco Sanchez GERENTE GRUPO ST - Software TOTAL -
- ignacio
- Site Admin
- Mensajes: 9253
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
sobre MENUS
Francisco,
Creo que entonces me has respondio mal a mi anterior Email o no te entiendo.
Es un evento que quieres que se dispare JUSTO antes del action del botón.
Entonces en ese momento JUSTO el escenario es IDENTICAMENTE IGUAL a cuando
realmente se ejecuta la acción del botón.
Un saludo,
"Francisco Sanchez" <francisco@softwaretotal.biz> escribió en el mensaje
news:424bbcd7$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> ya pero eso no puedo hacerlo pues son muchas clases independientes las
> implicadas y no estan disponibles asi como asi los metodos
> correspondientes que quiero ejecutar antes del action del menu el cual
> estoy leyendo del campo de una dbf.
>
> Atentamente : Francisco Sanchez GERENTE GRUPO ST - Software TOTAL -
>
Creo que entonces me has respondio mal a mi anterior Email o no te entiendo.
Es un evento que quieres que se dispare JUSTO antes del action del botón.
Entonces en ese momento JUSTO el escenario es IDENTICAMENTE IGUAL a cuando
realmente se ejecuta la acción del botón.
Un saludo,
"Francisco Sanchez" <francisco@softwaretotal.biz> escribió en el mensaje
news:424bbcd7$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> ya pero eso no puedo hacerlo pues son muchas clases independientes las
> implicadas y no estan disponibles asi como asi los metodos
> correspondientes que quiero ejecutar antes del action del menu el cual
> estoy leyendo del campo de una dbf.
>
> Atentamente : Francisco Sanchez GERENTE GRUPO ST - Software TOTAL -
>
-
- Mensajes: 532
- Registrado: Mié Feb 09, 2005 6:20 pm
sobre MENUS
Vamos a ver creo que esto ultimo me servira. Tendre que hacer algunas
pruebas. La idea es la siguiente. Vamos a ver en un apartado del programa
ahi tengo un formulario con su correspondiente menu, toolbar, browse, etc...
Por supuesto ataco las correspondientes dbf mediante dbfs temporales.
Entonces el tema es el siguiente : En el menu de este formulario hay
opciones en las cuales se hace referencia a datos de la dbf de este
formulario. Al trabajar con ficheros temporales, la dbf original en un
momento dado puede no estar actualizada con los ultimos cambios. Y estuve
probando con un metodo reload que lo que hace es actualizar la dbf original
y recargar de nuevo la dbf temporal. Y claro la idea es ejecutar este metodo
reload siempre que selecciones alguna opcion del menu de arriba, para
asegurarme que si es una apartado que tenga que mostrar informacion de la
dbf original del formulario que estoy trabajando, que este siempre
actualizada cuando abra el nuevo apartado.
Atentamente : Francisco Sanchez GERENTE GRUPO ST - Software TOTAL
pruebas. La idea es la siguiente. Vamos a ver en un apartado del programa
ahi tengo un formulario con su correspondiente menu, toolbar, browse, etc...
Por supuesto ataco las correspondientes dbf mediante dbfs temporales.
Entonces el tema es el siguiente : En el menu de este formulario hay
opciones en las cuales se hace referencia a datos de la dbf de este
formulario. Al trabajar con ficheros temporales, la dbf original en un
momento dado puede no estar actualizada con los ultimos cambios. Y estuve
probando con un metodo reload que lo que hace es actualizar la dbf original
y recargar de nuevo la dbf temporal. Y claro la idea es ejecutar este metodo
reload siempre que selecciones alguna opcion del menu de arriba, para
asegurarme que si es una apartado que tenga que mostrar informacion de la
dbf original del formulario que estoy trabajando, que este siempre
actualizada cuando abra el nuevo apartado.
Atentamente : Francisco Sanchez GERENTE GRUPO ST - Software TOTAL