Problemas con Valid, MsgRun y button
Problemas con Valid, MsgRun y button
Hola gente,
En mi sistema tengo definido un valid de un get en el que algunas de las tareas que realiza las hace mostrando un msgrun en pantalla.
El problema viene cuando estando en ese get se intenta pulsar en alguno de los button que tengo definidos en el resto de la ventana.
Como al pulsar en el button el get pierde el foco ejecuta el valid y tras terminar y debido a que muestra varios msgrun ya no recuerda que se había pulsado el botón y ejecuta la acción del mismo.
El probado el mismo procedimiento quitando los msgrun y funciona sin problemas, por lo que esta claro que el problema lo tengo por el msgrun.
Alguien me puede ayudar?
Muchas gracias por vuestra atención
En mi sistema tengo definido un valid de un get en el que algunas de las tareas que realiza las hace mostrando un msgrun en pantalla.
El problema viene cuando estando en ese get se intenta pulsar en alguno de los button que tengo definidos en el resto de la ventana.
Como al pulsar en el button el get pierde el foco ejecuta el valid y tras terminar y debido a que muestra varios msgrun ya no recuerda que se había pulsado el botón y ejecuta la acción del mismo.
El probado el mismo procedimiento quitando los msgrun y funciona sin problemas, por lo que esta claro que el problema lo tengo por el msgrun.
Alguien me puede ayudar?
Muchas gracias por vuestra atención
Un saludo
Fernando González Diez
ALSIS GHE Sistemas Informáticos
Fernando González Diez
ALSIS GHE Sistemas Informáticos
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
-
- Posts: 189
- Joined: Sun Jul 08, 2007 1:46 am
- Location: Uruguay
Antonio,
Correcto, el problema es que no ejecuta la acción del botón.
Pero si quito los msgrun, osea hago las validaciones sin mensaje en pantalla, tras terminar si me ejecuta la acción del botón
Ruben,
No me gustaría tener que poner la clausa CANCEL, porque si me interesa que ejecute el valid.
Gracias por vuestras respuestas
Correcto, el problema es que no ejecuta la acción del botón.
Pero si quito los msgrun, osea hago las validaciones sin mensaje en pantalla, tras terminar si me ejecuta la acción del botón
Ruben,
No me gustaría tener que poner la clausa CANCEL, porque si me interesa que ejecute el valid.
Gracias por vuestras respuestas
Un saludo
Fernando González Diez
ALSIS GHE Sistemas Informáticos
Fernando González Diez
ALSIS GHE Sistemas Informáticos
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Antonio,
El get no pas el foco al botón. Hay una serie de get's en cadena y al intro el foco va cambiando de un get a otro, ejecutando el valid del get que abandona y pasando el foco al get nuevo, y eso funciona sin problemas.
En la misma ventana hay un boton que al pulsarlo con el ratón hace una determinada tarea. Pues bien cuando con el ratón pulsan en el boton ejecuta el valid del get donde se encontraba el foco y si este contiene mensajes msgrun, no realiza la tarea del boton. Ejecuta el valid y el foco vuelve al mismo get.
Si el get no contiene mensajes msgrun, ejecuta el valid y posteriormente a tarea enconmendada al action del boton que han pulsado con el ratón.
Gracias por vuestras respuestas, espero haberlo aclarado algo.
El get no pas el foco al botón. Hay una serie de get's en cadena y al intro el foco va cambiando de un get a otro, ejecutando el valid del get que abandona y pasando el foco al get nuevo, y eso funciona sin problemas.
En la misma ventana hay un boton que al pulsarlo con el ratón hace una determinada tarea. Pues bien cuando con el ratón pulsan en el boton ejecuta el valid del get donde se encontraba el foco y si este contiene mensajes msgrun, no realiza la tarea del boton. Ejecuta el valid y el foco vuelve al mismo get.
Si el get no contiene mensajes msgrun, ejecuta el valid y posteriormente a tarea enconmendada al action del boton que han pulsado con el ratón.
Gracias por vuestras respuestas, espero haberlo aclarado algo.
Un saludo
Fernando González Diez
ALSIS GHE Sistemas Informáticos
Fernando González Diez
ALSIS GHE Sistemas Informáticos
Antonio,
Dentro de samples esta el prg dbf01.prg, bien pues para reproducirlo sólo hay que colocar un valid al primer get's que se visualiza:
De esta forma al entrar en la ventana el foco está en el primer get. Ahora intentamos pulsar con el ratón en botón "next" y la primera vez que se pulsa el botón no salta de registro.
Dentro de samples esta el prg dbf01.prg, bien pues para reproducirlo sólo hay que colocar un valid al primer get's que se visualiza:
Code: Select all
REDEFINE GET oDbf:First ID ID_NAME OF oDlg UPDATE ;
MESSAGE "Please type here the first name of the customer" ;
Valid ps_tt()
static func ps_tt()
local i, j := 1
msgrun('hola', 'hola', {|| i:= j +1} )
return .T.
Un saludo
Fernando González Diez
ALSIS GHE Sistemas Informáticos
Fernando González Diez
ALSIS GHE Sistemas Informáticos
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Fernando,
Prueba así
Prueba así
Code: Select all
static func ps_tt()
local i, j := 1
local h := GetFocus()
msgrun('hola', 'hola', {|| i:= j +1} )
if GetClassName( h ) == "Button"
PostMessage( h, FM_CLICK )
endif
return .T.