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