Página 1 de 1

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

Publicado: Lun Dic 05, 2005 4:13 pm
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
--

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

Publicado: Lun Dic 05, 2005 4:30 pm
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

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

Publicado: Lun Dic 05, 2005 4:35 pm
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

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

Publicado: Lun Dic 05, 2005 4:44 pm
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