Hola,
Necesito que al cambiar de pestaña el foco se vaya al control donde
estaba el foco antes del cambio, sin embargo, siempre se va al primero,
con lo que si se están editando 2 fichas en diferentes pestañas no se
puede volver al estado anterior.
¿Existe alguna forma de hacerlo?
Un Saludo,
Joaquín Martínez
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.
Duda con TFolde
Duda con TFolde
Joaquín,
> Necesito que al cambiar de pestaña el foco se vaya al control donde estaba
> el foco antes del cambio, sin embargo, siempre se va al primero, con lo
> que si se están editando 2 fichas en diferentes pestañas no se puede
> volver al estado anterior.
>
> ¿Existe alguna forma de hacerlo?
Me temo que tendrás que modificar o sobrecargar el método WMSetFocus() de
XFolderPage. Si te fijas verás que al final del método se está llamando a
::GoFirstControl(); no creo que haga falta explicar más Lo que puedes
hacer es cambiar esa llamada por un ::oActiveControl:SetFocus(), o
sobrecargar el método más o menos así (ojo, no lo he probado pero debería
funcionar):
METHOD WMSetFocus() CLASS TFolderPage
LOCAL oCtl := ::oActiveControl
Super:WMSetFocus()
::oActiveControl:SetFocus()
RETURN 0
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
> Necesito que al cambiar de pestaña el foco se vaya al control donde estaba
> el foco antes del cambio, sin embargo, siempre se va al primero, con lo
> que si se están editando 2 fichas en diferentes pestañas no se puede
> volver al estado anterior.
>
> ¿Existe alguna forma de hacerlo?
Me temo que tendrás que modificar o sobrecargar el método WMSetFocus() de
XFolderPage. Si te fijas verás que al final del método se está llamando a
::GoFirstControl(); no creo que haga falta explicar más Lo que puedes
hacer es cambiar esa llamada por un ::oActiveControl:SetFocus(), o
sobrecargar el método más o menos así (ojo, no lo he probado pero debería
funcionar):
METHOD WMSetFocus() CLASS TFolderPage
LOCAL oCtl := ::oActiveControl
Super:WMSetFocus()
::oActiveControl:SetFocus()
RETURN 0
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
Duda con TFolde
Jose,
¿Para qué sirve oCtl si no lo usas?
Lo probé pero parece ser que oActiveControl es el de TFolder en una
pestaña en concreto, pero no guarda el control activo de cada pestaña.
Es decir, sólo queda bien posicionado el foco en una de las pestañas en
las demás va al primero. ¿que me sugieres?
Jose F. Gimenez escribió:
> Joaquín,
>
>> Necesito que al cambiar de pestaña el foco se vaya al control donde estaba
>> el foco antes del cambio, sin embargo, siempre se va al primero, con lo
>> que si se están editando 2 fichas en diferentes pestañas no se puede
>> volver al estado anterior.
>>
>> ¿Existe alguna forma de hacerlo?
>
> Me temo que tendrás que modificar o sobrecargar el método WMSetFocus() de
> XFolderPage. Si te fijas verás que al final del método se está llamando a
> ::GoFirstControl(); no creo que haga falta explicar más Lo que puedes
> hacer es cambiar esa llamada por un ::oActiveControl:SetFocus(), o
> sobrecargar el método más o menos así (ojo, no lo he probado pero debería
> funcionar):
>
> METHOD WMSetFocus() CLASS TFolderPage
> LOCAL oCtl := ::oActiveControl
> Super:WMSetFocus()
> ::oActiveControl:SetFocus()
> RETURN 0
>
¿Para qué sirve oCtl si no lo usas?
Lo probé pero parece ser que oActiveControl es el de TFolder en una
pestaña en concreto, pero no guarda el control activo de cada pestaña.
Es decir, sólo queda bien posicionado el foco en una de las pestañas en
las demás va al primero. ¿que me sugieres?
Jose F. Gimenez escribió:
> Joaquín,
>
>> Necesito que al cambiar de pestaña el foco se vaya al control donde estaba
>> el foco antes del cambio, sin embargo, siempre se va al primero, con lo
>> que si se están editando 2 fichas en diferentes pestañas no se puede
>> volver al estado anterior.
>>
>> ¿Existe alguna forma de hacerlo?
>
> Me temo que tendrás que modificar o sobrecargar el método WMSetFocus() de
> XFolderPage. Si te fijas verás que al final del método se está llamando a
> ::GoFirstControl(); no creo que haga falta explicar más Lo que puedes
> hacer es cambiar esa llamada por un ::oActiveControl:SetFocus(), o
> sobrecargar el método más o menos así (ojo, no lo he probado pero debería
> funcionar):
>
> METHOD WMSetFocus() CLASS TFolderPage
> LOCAL oCtl := ::oActiveControl
> Super:WMSetFocus()
> ::oActiveControl:SetFocus()
> RETURN 0
>
Duda con TFolde
Joaquín,
Prueba así...
METHOD WMSetFocus() CLASS TFolderPage
LOCAL oCtl := ::oActiveControl
Super:WMSetFocus()
oCtl:SetFocus()
RETURN 0
Un Saludo,
Xevi.
"Joaquín Martínez" <jmartial@interbook.net> escribió en el mensaje de
noticias news:[email=4741ddc0@ozsrv2.ozlan.local...]4741ddc0@ozsrv2.ozlan.local...[/email]
> Jose,
>
> ¿Para qué sirve oCtl si no lo usas?
>
> Lo probé pero parece ser que oActiveControl es el de TFolder en una
> pestaña en concreto, pero no guarda el control activo de cada pestaña.
>
> Es decir, sólo queda bien posicionado el foco en una de las pestañas en
> las demás va al primero. ¿que me sugieres?
>
> Jose F. Gimenez escribió:
>> Joaquín,
>>
>>> Necesito que al cambiar de pestaña el foco se vaya al control donde
>>> estaba el foco antes del cambio, sin embargo, siempre se va al primero,
>>> con lo que si se están editando 2 fichas en diferentes pestañas no se
>>> puede volver al estado anterior.
>>>
>>> ¿Existe alguna forma de hacerlo?
>>
>> Me temo que tendrás que modificar o sobrecargar el método WMSetFocus() de
>> XFolderPage. Si te fijas verás que al final del método se está llamando a
>> ::GoFirstControl(); no creo que haga falta explicar más Lo que
>> puedes hacer es cambiar esa llamada por un ::oActiveControl:SetFocus(), o
>> sobrecargar el método más o menos así (ojo, no lo he probado pero debería
>> funcionar):
>>
>> METHOD WMSetFocus() CLASS TFolderPage
>> LOCAL oCtl := ::oActiveControl
>> Super:WMSetFocus()
>> ::oActiveControl:SetFocus()
>> RETURN 0
>>
Prueba así...
METHOD WMSetFocus() CLASS TFolderPage
LOCAL oCtl := ::oActiveControl
Super:WMSetFocus()
oCtl:SetFocus()
RETURN 0
Un Saludo,
Xevi.
"Joaquín Martínez" <jmartial@interbook.net> escribió en el mensaje de
noticias news:[email=4741ddc0@ozsrv2.ozlan.local...]4741ddc0@ozsrv2.ozlan.local...[/email]
> Jose,
>
> ¿Para qué sirve oCtl si no lo usas?
>
> Lo probé pero parece ser que oActiveControl es el de TFolder en una
> pestaña en concreto, pero no guarda el control activo de cada pestaña.
>
> Es decir, sólo queda bien posicionado el foco en una de las pestañas en
> las demás va al primero. ¿que me sugieres?
>
> Jose F. Gimenez escribió:
>> Joaquín,
>>
>>> Necesito que al cambiar de pestaña el foco se vaya al control donde
>>> estaba el foco antes del cambio, sin embargo, siempre se va al primero,
>>> con lo que si se están editando 2 fichas en diferentes pestañas no se
>>> puede volver al estado anterior.
>>>
>>> ¿Existe alguna forma de hacerlo?
>>
>> Me temo que tendrás que modificar o sobrecargar el método WMSetFocus() de
>> XFolderPage. Si te fijas verás que al final del método se está llamando a
>> ::GoFirstControl(); no creo que haga falta explicar más Lo que
>> puedes hacer es cambiar esa llamada por un ::oActiveControl:SetFocus(), o
>> sobrecargar el método más o menos así (ojo, no lo he probado pero debería
>> funcionar):
>>
>> METHOD WMSetFocus() CLASS TFolderPage
>> LOCAL oCtl := ::oActiveControl
>> Super:WMSetFocus()
>> ::oActiveControl:SetFocus()
>> RETURN 0
>>
Duda con TFolde
Xevi,
> METHOD WMSetFocus() CLASS TFolderPage
> LOCAL oCtl := ::oActiveControl
> Super:WMSetFocus()
> oCtl:SetFocus()
> RETURN 0
Gracias por la corrección. Lo escribí al vuelo y evidentemente estaba mal.
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
> METHOD WMSetFocus() CLASS TFolderPage
> LOCAL oCtl := ::oActiveControl
> Super:WMSetFocus()
> oCtl:SetFocus()
> RETURN 0
Gracias por la corrección. Lo escribí al vuelo y evidentemente estaba mal.
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
Duda con TFolde
Jose,
Da error porque a veces es nil, pero, aunque lo arregle y ponga:
METHOD WMSetFocus( hCtl ) CLASS TFormFolder
LOCAL oCtl := ::oActiveControl
Super:WMSetFocus()
if oCtl<>nil
oCtl:SetFocus()
endif
RETURN 0
Falla!!, siempre se va al 1º control y nunca recuerda en qué edit estaba
la pestaña. ¿Funciona bien oActiveControl ? ¿ O se podría guardar el
control con foco al perder el foco la pestaña y al recibir el foco hacer
un setfocus?
¿En qué método de la clase pierde el foco para poder añadirle una nueva
DATA que recuerde el control activo ?
Una manita porfa, que me tiene atascado este efecto al cambiar de pestaña.
Jose F. Gimenez escribió:
> Xevi,
>
>> METHOD WMSetFocus() CLASS TFolderPage
>> LOCAL oCtl := ::oActiveControl
>> Super:WMSetFocus()
>> oCtl:SetFocus()
>> RETURN 0
>
> Gracias por la corrección. Lo escribí al vuelo y evidentemente estaba mal.
>
Da error porque a veces es nil, pero, aunque lo arregle y ponga:
METHOD WMSetFocus( hCtl ) CLASS TFormFolder
LOCAL oCtl := ::oActiveControl
Super:WMSetFocus()
if oCtl<>nil
oCtl:SetFocus()
endif
RETURN 0
Falla!!, siempre se va al 1º control y nunca recuerda en qué edit estaba
la pestaña. ¿Funciona bien oActiveControl ? ¿ O se podría guardar el
control con foco al perder el foco la pestaña y al recibir el foco hacer
un setfocus?
¿En qué método de la clase pierde el foco para poder añadirle una nueva
DATA que recuerde el control activo ?
Una manita porfa, que me tiene atascado este efecto al cambiar de pestaña.
Jose F. Gimenez escribió:
> Xevi,
>
>> METHOD WMSetFocus() CLASS TFolderPage
>> LOCAL oCtl := ::oActiveControl
>> Super:WMSetFocus()
>> oCtl:SetFocus()
>> RETURN 0
>
> Gracias por la corrección. Lo escribí al vuelo y evidentemente estaba mal.
>