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.

tPages y cambio de página cuando el control con foco tiene un onexit que devuelve .F.

Foro de Xailer profesional en español
Responder
joseluis
Mensajes: 642
Registrado: Jue Sep 08, 2005 12:54 pm

tPages y cambio de página cuando el control con foco tiene un onexit que devuelve .F.

Mensaje por joseluis »

Hola,
Me encuentro con un comportamiento que no acabo de entender.
Estando el foco en un control que su onexit devuelve .F. cambiamos a
otra página del pages, ocurre que cuando hace el cambio, no toma el foco
ningún control de la nueva página seleccionada. Entonces, si con el
ratón hacemos click, se dispara el onexit del control de la otra página.
Os dejo un ejemplo que seguro se explica mejor que yo ;-)
El tEdit con onExit := .F. es el tercero. Si vamos hacemos click en
'Pagina +' de la optionlist vemos que, estando en el tercer tEdit,
cambiamos a la segunda página del pages. Si hacemos click en cualquiera
de los controles entonces se dispara el onexit del control tedit de la
página anterior.
Yo me imagino que el comportamiento del cambio de página debe ser igual
al pagefolder... no? Estoy usando el método select para cambiar de página.
Saludos,
José Luis Capel
--
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

tPages y cambio de página cuando el control con foco tiene un onexit que devuelve .F.

Mensaje por jfgimenez »

José Luis,
> Yo me imagino que el comportamiento del cambio de página debe ser igual
> al pagefolder... no? Estoy usando el método select para cambiar de
> página.
Sí y no; me explico: en ambos casos, hay unas páginas que se muestran u
ocultan en función de la que esté seleccionada en cada momento. Pero en el
caso de TFolder es Xailer quién realiza el cambio de página en función de la
pestaña que haya seleccionado el usuario. En cambio, en TPages, eres tú
quién está haciendo el cambio. En ambos casos, el cambio de pestaña se
realiza por código (no hay nada en windows que lo haga).
En el primer caso, Xailer tiene cuidado de validar el control que tenga el
foco, y en el segundo caso deberías ser tú quién lo controle; p.ej., si en
vez de una TOptionList hubieras usado un TTreeview (como los formularios de
configuración del IDE), te habría funcionado como tú esperas, ya que el
treeview recibe el foco de teclado antes de disparar su OnChange. Pero la
optionlist no recibe nunca el foco, y por lo tanto no se dispara ningún
OnExit antes de que se cambie de página.
Sé que es un poco lioso, y espero que me hayas entendido.
--
Un saludo,
José F. Giménez
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
joseluis
Mensajes: 642
Registrado: Jue Sep 08, 2005 12:54 pm

tPages y cambio de página cuando el control con foco tiene un onexit que devuelve .F.

Mensaje por joseluis »

José,
>
> Sí­ y no; me explico: en ambos casos, hay unas páginas que se muestran u
> ocultan en función de la que esté seleccionada en cada momento. Pero en el
> caso de TFolder es Xailer quién realiza el cambio de página en función de la
> pestaña que haya seleccionado el usuario. En cambio, en TPages, eres tú
> quién está haciendo el cambio. En ambos casos, el cambio de pestaña se
> realiza por código (no hay nada en windows que lo haga).
>
> En el primer caso, Xailer tiene cuidado de validar el control que tenga el
> foco, y en el segundo caso deberí­as ser tú quién lo controle; p.ej., si en
> vez de una TOptionList hubieras usado un TTreeview (como los formularios de
> configuración del IDE), te habrí­a funcionado como tú esperas, ya que el
> treeview recibe el foco de teclado antes de disparar su OnChange. Pero la
> optionlist no recibe nunca el foco, y por lo tanto no se dispara ningún
> OnExit antes de que se cambie de página.
>
> Sé que es un poco lioso, y espero que me hayas entendido.
>
Gracias por tus aclaraciones.
Pregunta del millón: ¿como fuerzo el onexit del control activo cuando
hago el select a otra página? ¿¿ oForm:oActiveControl:onExit() ??
Saludos y gracias!
José Luis Capel
Saludos y gracio
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

tPages y cambio de página cuando el control con foco tiene un onexit que devuelve .F.

Mensaje por jfgimenez »

José Luis,
> Pregunta del millón: ¿como fuerzo el onexit del control activo cuando hago
> el select a otra página? ¿¿ oForm:oActiveControl:onExit() ??
Algo así:
LOCAL lOk
IF ::oActiveControl == Nil .OR. ( lOk := ::oActiveControl:Valid() ) ==
Nil .OR. lOk
// Cambiar la pestaña
ENDIF
--
Un saludo,
José F. Giménez
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Responder