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.

problema onexit combobox

Foro de Xailer profesional en español
Responder
Francisco Sanchez
Mensajes: 532
Registrado: Mié Feb 09, 2005 6:20 pm

problema onexit combobox

Mensaje por Francisco Sanchez »

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
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9441
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

problema onexit combobox

Mensaje por ignacio »

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
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9441
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

problema onexit combobox

Mensaje por ignacio »

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)Â
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Francisco Sanchez
Mensajes: 532
Registrado: Mié Feb 09, 2005 6:20 pm

problema onexit combobox

Mensaje por Francisco Sanchez »

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
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9441
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

problema onexit combobox

Mensaje por ignacio »

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
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Francisco Sanchez
Mensajes: 532
Registrado: Mié Feb 09, 2005 6:20 pm

problema onexit combobox

Mensaje por Francisco Sanchez »

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
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9441
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

problema onexit combobox

Mensaje por ignacio »

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
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Francisco Sanchez
Mensajes: 532
Registrado: Mié Feb 09, 2005 6:20 pm

problema onexit combobox

Mensaje por Francisco Sanchez »

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
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9441
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

problema onexit combobox

Mensaje por ignacio »

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
>
>
--
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Francisco Sanchez
Mensajes: 532
Registrado: Mié Feb 09, 2005 6:20 pm

problema onexit combobox

Mensaje por Francisco Sanchez »

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
--
Francisco Sanchez
Mensajes: 532
Registrado: Mié Feb 09, 2005 6:20 pm

problema onexit combobox

Mensaje por Francisco Sanchez »

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
--
Responder