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.
problema onexit combobox
-
- Mensajes: 532
- Registrado: Mié Feb 09, 2005 6:20 pm
problema onexit combobox
Tengo un combobox en el cual selecciono entre una lista de valores alguno en
concreto. En el evento Onexit de este combobox tengo puesta una comprobacion
entre el nindex de este combobox y el de un segundo combobox presente en el
mismo formulario. De tal forma que el valor del primero nunca puede ser
superior al del segundo.
El formulario este en cuestion lo llamo desde una opcion de mi programa,
desde alli gestiono el formulario en cuestion y luego grabo los datos en la
correpondiente dbf. Al mismo tiempo me encargo desde alli de pintar un menu
y una toolbar. En la toolbar tengo una opcion para guardar y abandonar
formulario.
Si cambio el valor en este primer combobox, y directamente me voy a la
toolbar a "Aceptar" que se encarga de guardar y abandonar el formulario no
me ejecuta el evento onexit del primer combobox.
¿ Como podria forzar a que se ejecutase este onexit ?
Atentamente : Francisco Sanchez GERENTE GRUPO ST - Software TOTAL
concreto. En el evento Onexit de este combobox tengo puesta una comprobacion
entre el nindex de este combobox y el de un segundo combobox presente en el
mismo formulario. De tal forma que el valor del primero nunca puede ser
superior al del segundo.
El formulario este en cuestion lo llamo desde una opcion de mi programa,
desde alli gestiono el formulario en cuestion y luego grabo los datos en la
correpondiente dbf. Al mismo tiempo me encargo desde alli de pintar un menu
y una toolbar. En la toolbar tengo una opcion para guardar y abandonar
formulario.
Si cambio el valor en este primer combobox, y directamente me voy a la
toolbar a "Aceptar" que se encarga de guardar y abandonar el formulario no
me ejecuta el evento onexit del primer combobox.
¿ Como podria forzar a que se ejecutase este onexit ?
Atentamente : Francisco Sanchez GERENTE GRUPO ST - Software TOTAL
- ignacio
- Site Admin
- Mensajes: 9441
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
problema onexit combobox
Francisco,
Debería ejecutarse el ONEXIT del primer combobox al ir al botón de Aceptar.
Por favor manda un ejemplo
Gracias
"Francisco Sanchez" <francisco@softwaretotal.biz> escribió en el mensaje
news:42524bf4$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Tengo un combobox en el cual selecciono entre una lista de valores alguno
> en concreto. En el evento Onexit de este combobox tengo puesta una
> comprobacion entre el nindex de este combobox y el de un segundo combobox
> presente en el mismo formulario. De tal forma que el valor del primero
> nunca puede ser superior al del segundo.
>
> El formulario este en cuestion lo llamo desde una opcion de mi programa,
> desde alli gestiono el formulario en cuestion y luego grabo los datos en
> la correpondiente dbf. Al mismo tiempo me encargo desde alli de pintar un
> menu y una toolbar. En la toolbar tengo una opcion para guardar y
> abandonar formulario.
>
> Si cambio el valor en este primer combobox, y directamente me voy a la
> toolbar a "Aceptar" que se encarga de guardar y abandonar el formulario no
> me ejecuta el evento onexit del primer combobox.
>
> ¿ Como podria forzar a que se ejecutase este onexit ?
>
> Atentamente : Francisco Sanchez GERENTE GRUPO ST - Software TOTAL
>
Debería ejecutarse el ONEXIT del primer combobox al ir al botón de Aceptar.
Por favor manda un ejemplo
Gracias
"Francisco Sanchez" <francisco@softwaretotal.biz> escribió en el mensaje
news:42524bf4$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Tengo un combobox en el cual selecciono entre una lista de valores alguno
> en concreto. En el evento Onexit de este combobox tengo puesta una
> comprobacion entre el nindex de este combobox y el de un segundo combobox
> presente en el mismo formulario. De tal forma que el valor del primero
> nunca puede ser superior al del segundo.
>
> El formulario este en cuestion lo llamo desde una opcion de mi programa,
> desde alli gestiono el formulario en cuestion y luego grabo los datos en
> la correpondiente dbf. Al mismo tiempo me encargo desde alli de pintar un
> menu y una toolbar. En la toolbar tengo una opcion para guardar y
> abandonar formulario.
>
> Si cambio el valor en este primer combobox, y directamente me voy a la
> toolbar a "Aceptar" que se encarga de guardar y abandonar el formulario no
> me ejecuta el evento onexit del primer combobox.
>
> ¿ Como podria forzar a que se ejecutase este onexit ?
>
> Atentamente : Francisco Sanchez GERENTE GRUPO ST - Software TOTAL
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
- ignacio
- Site Admin
- Mensajes: 9441
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
problema onexit combobox
Francisco,
Acabo de recibir tu código por correo normal y ya veo lo que te está
pasando.
OnExit no se dispara sencillamente porque no esta perdiendo el foco el
combobox, ya que el botón que pulsas no tiene la propiedad lTabStop.
Te propongo la siguiente forma de hacerlo y te mando tu proyecto de vuelta
con ello:
1) Utilizar Close en vez de End
En vez de esto: :oToolBar:aButtons[1]:OnClick := { || oFormPrin:End() }
Esto: :oToolBar:aButtons[1]:OnClick := { || oFormPrin:Close() }
2) Hacer el siguiente evento en Form:OnClose
//---------------------------------------------------------- --------------------
METHOD FormClose( oSender, lClose ) CLASS TForm1
local oControl, lRet
for Each oControl IN ::aControls
lRet := oControl:OnExit()
if Valtype( lRet ) == "L" .and. !lRet
lClose := .f.
return nil
endif
next
RETURN Nil
Yo lo habría resuelto con un único método en el formulario que controlase
los rangos de absolutamente todos los controles. A mi no me gusta impedir al
usuario salir de un control. Pero eso es cuestión de gustos
Un saludo
Un saludo,
"Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el mensaje
news:42528c49$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Francisco,
>
> Debería ejecutarse el ONEXIT del primer combobox al ir al botón de
> Aceptar.
> Por favor manda un ejemplo
>
> Gracias
>
> "Francisco Sanchez" <francisco@softwaretotal.biz> escribió en el mensaje
> news:42524bf4$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>> Tengo un combobox en el cual selecciono entre una lista de valores alguno
>> en concreto. En el evento Onexit de este combobox tengo puesta una
>> comprobacion entre el nindex de este combobox y el de un segundo combobox
>> presente en el mismo formulario. De tal forma que el valor del primero
>> nunca puede ser superior al del segundo.
>>
>> El formulario este en cuestion lo llamo desde una opcion de mi programa,
>> desde alli gestiono el formulario en cuestion y luego grabo los datos en
>> la correpondiente dbf. Al mismo tiempo me encargo desde alli de pintar un
>> menu y una toolbar. En la toolbar tengo una opcion para guardar y
>> abandonar formulario.
>>
>> Si cambio el valor en este primer combobox, y directamente me voy a la
>> toolbar a "Aceptar" que se encarga de guardar y abandonar el formulario
>> no
>> me ejecuta el evento onexit del primer combobox.
>>
>> ¿ Como podria forzar a que se ejecutase este onexit ?
>>
>> Atentamente : Francisco Sanchez GERENTE GRUPO ST - Software TOTAL
>>
>
>
Attached files prueba.zip (3.2 KB)Â
Acabo de recibir tu código por correo normal y ya veo lo que te está
pasando.
OnExit no se dispara sencillamente porque no esta perdiendo el foco el
combobox, ya que el botón que pulsas no tiene la propiedad lTabStop.
Te propongo la siguiente forma de hacerlo y te mando tu proyecto de vuelta
con ello:
1) Utilizar Close en vez de End
En vez de esto: :oToolBar:aButtons[1]:OnClick := { || oFormPrin:End() }
Esto: :oToolBar:aButtons[1]:OnClick := { || oFormPrin:Close() }
2) Hacer el siguiente evento en Form:OnClose
//---------------------------------------------------------- --------------------
METHOD FormClose( oSender, lClose ) CLASS TForm1
local oControl, lRet
for Each oControl IN ::aControls
lRet := oControl:OnExit()
if Valtype( lRet ) == "L" .and. !lRet
lClose := .f.
return nil
endif
next
RETURN Nil
Yo lo habría resuelto con un único método en el formulario que controlase
los rangos de absolutamente todos los controles. A mi no me gusta impedir al
usuario salir de un control. Pero eso es cuestión de gustos

Un saludo
Un saludo,
"Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el mensaje
news:42528c49$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Francisco,
>
> Debería ejecutarse el ONEXIT del primer combobox al ir al botón de
> Aceptar.
> Por favor manda un ejemplo
>
> Gracias
>
> "Francisco Sanchez" <francisco@softwaretotal.biz> escribió en el mensaje
> news:42524bf4$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>> Tengo un combobox en el cual selecciono entre una lista de valores alguno
>> en concreto. En el evento Onexit de este combobox tengo puesta una
>> comprobacion entre el nindex de este combobox y el de un segundo combobox
>> presente en el mismo formulario. De tal forma que el valor del primero
>> nunca puede ser superior al del segundo.
>>
>> El formulario este en cuestion lo llamo desde una opcion de mi programa,
>> desde alli gestiono el formulario en cuestion y luego grabo los datos en
>> la correpondiente dbf. Al mismo tiempo me encargo desde alli de pintar un
>> menu y una toolbar. En la toolbar tengo una opcion para guardar y
>> abandonar formulario.
>>
>> Si cambio el valor en este primer combobox, y directamente me voy a la
>> toolbar a "Aceptar" que se encarga de guardar y abandonar el formulario
>> no
>> me ejecuta el evento onexit del primer combobox.
>>
>> ¿ Como podria forzar a que se ejecutase este onexit ?
>>
>> Atentamente : Francisco Sanchez GERENTE GRUPO ST - Software TOTAL
>>
>
>
Attached files prueba.zip (3.2 KB)Â
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
-
- Mensajes: 532
- Registrado: Mié Feb 09, 2005 6:20 pm
problema onexit combobox
OK pero la solucion que me planteas destruira totalmente el formulario en
cuestion y todos sus controles liberando totalmente la memoria que hayan
utilizado ?
Atentamente : Francisco Sanchez GERENTE GRUPO ST - Software TOTAL
cuestion y todos sus controles liberando totalmente la memoria que hayan
utilizado ?
Atentamente : Francisco Sanchez GERENTE GRUPO ST - Software TOTAL
- ignacio
- Site Admin
- Mensajes: 9441
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
problema onexit combobox
Francisco,
Sencillamente he cogido tu ejemplo en el cual cerrabas la ventana. Lo de
menos es el hecho de que haya puesto en un evento OnClose. Tan sólo quiero
que te fijes en el bucle FOR-NEXT.
Un saludo,
"Francisco Sanchez" <francisco@softwaretotal.biz> escribió en el mensaje
news:4252cd79$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> OK pero la solucion que me planteas destruira totalmente el formulario en
> cuestion y todos sus controles liberando totalmente la memoria que hayan
> utilizado ?
>
> Atentamente : Francisco Sanchez GERENTE GRUPO ST - Software TOTAL
>
Sencillamente he cogido tu ejemplo en el cual cerrabas la ventana. Lo de
menos es el hecho de que haya puesto en un evento OnClose. Tan sólo quiero
que te fijes en el bucle FOR-NEXT.
Un saludo,
"Francisco Sanchez" <francisco@softwaretotal.biz> escribió en el mensaje
news:4252cd79$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> OK pero la solucion que me planteas destruira totalmente el formulario en
> cuestion y todos sus controles liberando totalmente la memoria que hayan
> utilizado ?
>
> Atentamente : Francisco Sanchez GERENTE GRUPO ST - Software TOTAL
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
-
- Mensajes: 532
- Registrado: Mié Feb 09, 2005 6:20 pm
problema onexit combobox
ok PERO tendras que disculparme en el ejemplo que te mande se me colo un
button y en mi programa este no existe, solo hay una toolbar y entonces no
funciona tu solucion. No se por que.
Atentamente : Francisco Sanchez GERENTE GRUPO ST - Software TOTAL
button y en mi programa este no existe, solo hay una toolbar y entonces no
funciona tu solucion. No se por que.
Atentamente : Francisco Sanchez GERENTE GRUPO ST - Software TOTAL
- ignacio
- Site Admin
- Mensajes: 9441
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
problema onexit combobox
Francisco,
:-o
¿En tu programa no existe el botón que provoca el error?
¿Entonces cuando y como te falla?
Debes de mandar un ejemplo que realmente muestre lo que quieres hacer. No
obstante ya te he comentado que no es un error ya que el foco no cambia del
combobox, por lo tanto si deseas poder controlarlo desde un botón que no
cambia el foco lo que tienes que hacer es el bucle for-next como primera
operación antes de ejecutara la acción que dispare dicho botón que no cambia
el foco.
Espero que me hayas entendido.
Un saludo,
"Francisco Sanchez" <francisco@softwaretotal.biz> escribió en el mensaje
news:42542fbe$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> ok PERO tendras que disculparme en el ejemplo que te mande se me colo un
> button y en mi programa este no existe, solo hay una toolbar y entonces no
> funciona tu solucion. No se por que.
>
> Atentamente : Francisco Sanchez GERENTE GRUPO ST - Software TOTAL
>
:-o
¿En tu programa no existe el botón que provoca el error?
¿Entonces cuando y como te falla?
Debes de mandar un ejemplo que realmente muestre lo que quieres hacer. No
obstante ya te he comentado que no es un error ya que el foco no cambia del
combobox, por lo tanto si deseas poder controlarlo desde un botón que no
cambia el foco lo que tienes que hacer es el bucle for-next como primera
operación antes de ejecutara la acción que dispare dicho botón que no cambia
el foco.
Espero que me hayas entendido.
Un saludo,
"Francisco Sanchez" <francisco@softwaretotal.biz> escribió en el mensaje
news:42542fbe$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> ok PERO tendras que disculparme en el ejemplo que te mande se me colo un
> button y en mi programa este no existe, solo hay una toolbar y entonces no
> funciona tu solucion. No se por que.
>
> Atentamente : Francisco Sanchez GERENTE GRUPO ST - Software TOTAL
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
-
- Mensajes: 532
- Registrado: Mié Feb 09, 2005 6:20 pm
problema onexit combobox
No me ha funcionado te mando ejemplo en el que no funciona, en el tuyo si.
Te lo envio por correo pues no se porque motivo el outlook express no me
deja mandar ficheros a las news.
Atentamente : Francisco Sanchez GERENTE GRUPO ST - Software TOTAL
Te lo envio por correo pues no se porque motivo el outlook express no me
deja mandar ficheros a las news.
Atentamente : Francisco Sanchez GERENTE GRUPO ST - Software TOTAL
- ignacio
- Site Admin
- Mensajes: 9441
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
problema onexit combobox
Francisco,
De un mensaje anterior:
1) Utilizar Close en vez de End
En vez de esto: :oToolBar:aButtons[1]:OnClick := { || oFormPrin:End() }
Esto: :oToolBar:aButtons[1]:OnClick := { || oFormPrin:Close() }
El código que me has dado:
:oToolBar:aButtons[1]:OnClick := { || oFormPrin:End() }
Un saludo,
"Francisco Sanchez" <francisco@softwaretotal.biz> escribió en el mensaje news:[email=42554b4f@ozsrv2.ozlan.local...]42554b4f@ozsrv2.ozlan.local...[/email]
> No me ha funcionado te mando ejemplo en el que no funciona, en el tuyo si.
> Te lo envio por correo pues no se porque motivo el outlook express no me
> deja mandar ficheros a las news.
>
> Atentamente : Francisco Sanchez GERENTE GRUPO ST - Software TOTAL
>
>
--
De un mensaje anterior:
1) Utilizar Close en vez de End
En vez de esto: :oToolBar:aButtons[1]:OnClick := { || oFormPrin:End() }
Esto: :oToolBar:aButtons[1]:OnClick := { || oFormPrin:Close() }
El código que me has dado:
:oToolBar:aButtons[1]:OnClick := { || oFormPrin:End() }
Un saludo,
"Francisco Sanchez" <francisco@softwaretotal.biz> escribió en el mensaje news:[email=42554b4f@ozsrv2.ozlan.local...]42554b4f@ozsrv2.ozlan.local...[/email]
> No me ha funcionado te mando ejemplo en el que no funciona, en el tuyo si.
> Te lo envio por correo pues no se porque motivo el outlook express no me
> deja mandar ficheros a las news.
>
> Atentamente : Francisco Sanchez GERENTE GRUPO ST - Software TOTAL
>
>
--
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
-
- Mensajes: 532
- Registrado: Mié Feb 09, 2005 6:20 pm
problema onexit combobox
seguire revisando codigo pues en el ejemplito funciona ok pero lo monto todo en mi programa y no hay manera te envie el formulario pero no voy a enviarte mas pues no debes de volverte loco con el codigo de mi aplicacion. Seguro que estoy haciendo algo que inutiliza el bucle o al menos hace que de 6 eventos onexit que hay solo ejecute 3 de ellos.
Atentamente : Francisco Sanchez GERENTE GRUPO ST - Software TOTAL
--
Atentamente : Francisco Sanchez GERENTE GRUPO ST - Software TOTAL
--
-
- Mensajes: 532
- Registrado: Mié Feb 09, 2005 6:20 pm
problema onexit combobox
ARREGLADO muchisimas gracias ignacio y disculpa el tiempo que te he hecho perder en esto. La solucion como bien me has repetido un millon de veces era obvia y muy pero que muy simple no hacia falta complicarme tanto. Mis disculpas por mi torpeza
Atentamente : Francisco Sanchez GERENTE GRUPO ST
--
Atentamente : Francisco Sanchez GERENTE GRUPO ST
--