Página 1 de 1

Re: Cmo saber quien tena el Foco???

Publicado: Mar Feb 07, 2006 10:47 pm
por jfgimenez
Xevi,
> ¿Hay alguna propiedad que de el objeto con el Foco anterior al objeto
> llamado?
La propieda oActiveControl del formulario tiene siempre el control que tenga
el foco. Otra cosa es que durante ciertos eventos relacionados con el cambio
de foco oActiveControl puede tener el control anterior o el actual,
dependiendo de qué evento se trate.
Para lo que quieres hacer, lo mejor sería usar el evento OnChanging del
folder para capturar qué control tenía el foco (en ese momento todavía no ha
cambiado). Después, en el evento OnChange (que ya sí ha cambiado el foco)
vuelves a enviar el foco al control que quieras.
Te adjunto tu ejemplo modificado para que lo veas. He cambiado los browses
por botones para ver más claro donde está el foco en cada momento, y los
msginfo() por logdebug() para que no afecte al cambio de foco. Cuando el
foco está en el primer botón, al cambiar la pestaña devuelve el foco al
mismo botón, pero si el foco está en otro control, lo deja pasar.
--
Un saludo,
José F. Giménez


Attached files pruebas.zip (1.7 KB)Â

Re: Cmo saber quien tena el Foco???

Publicado: Mar Feb 07, 2006 10:58 pm
por Xevi
Jose,
Gracias, funciona PERFECTAMENTE.
Un Saludo,
Xevi.
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje
news:43e9155f$[email=3@ozsrvnegro.ozlan.local...]3@ozsrvnegro.ozlan.local...[/email]
>
> Xevi,
>
>> ¿Hay alguna propiedad que de el objeto con el Foco anterior al objeto
>> llamado?
>
> La propieda oActiveControl del formulario tiene siempre el control que
> tenga
> el foco. Otra cosa es que durante ciertos eventos relacionados con el
> cambio
> de foco oActiveControl puede tener el control anterior o el actual,
> dependiendo de qué evento se trate.
>
> Para lo que quieres hacer, lo mejor sería usar el evento OnChanging del
> folder para capturar qué control tenía el foco (en ese momento todavía no
> ha
> cambiado). Después, en el evento OnChange (que ya sí ha cambiado el foco)
> vuelves a enviar el foco al control que quieras.
>
> Te adjunto tu ejemplo modificado para que lo veas. He cambiado los browses
> por botones para ver más claro donde está el foco en cada momento, y los
> msginfo() por logdebug() para que no afecte al cambio de foco. Cuando el
> foco está en el primer botón, al cambiar la pestaña devuelve el foco al
> mismo botón, pero si el foco está en otro control, lo deja pasar.
>
> --
> Un saludo,
>
> José F. Giménez
>
>
>