Equivalente a SetFocus() en el Procedimiento Valid.

2,165 views
Skip to first unread message

stallman stallman

unread,
Jun 7, 2011, 11:33:07 PM6/7/11
to publice...@googlegroups.com
Hola estimados Señores.

- Por favor quisiera que alguien me ayude a realizar lo siguiente:

1- Estoy realizando una validación en un TextBox en el procedimiento Valid, después de éste tengo 3 TextBox (1-2-3), cuando se cumpla la validación quisiera que el cursor pase al 3 TextBox y no al 1, cómo puedo realizar ésto, dado que no se puede ejecutar un SetFocus en Valid.


Les agradezco toda la ayuda que me puedan brindar.

Luis Mata

unread,
Jun 7, 2011, 11:34:56 PM6/7/11
to publice...@googlegroups.com
Si en lugar del VALID usas el LOSTFOCUS te permite usar SETFOCUS

stallman stallman

unread,
Jun 7, 2011, 11:38:45 PM6/7/11
to publice...@googlegroups.com
Saludos.

Pues si Luis, lo que quiero saber es si existe alguna forma que asimile ésto en Valid, no existe entonces tendré que realizar la validación en el LostFocus.

Edgar Acevedo

unread,
Jun 7, 2011, 11:41:03 PM6/7/11
to publice...@googlegroups.com
Otra opción sería "inyectarle" teclas al buffer del teclado para "simular" que el usuario la tecla TAB aunque no lo haya hecho:

KEYBOARD '{TAB}' + '{TAB}' + '{TAB}'

stallman stallman

unread,
Jun 7, 2011, 11:58:25 PM6/7/11
to publice...@googlegroups.com
Simplemente Genial !!! Don Edgar! Muchas gracias!

foxteban

unread,
Jun 7, 2011, 11:59:10 PM6/7/11
to Comunidad de Visual Foxpro en Español
Hola Amigo

Mira, lo que yo hago en un valid despues de corroborar todo si lo
quiero enviar algun lugar determinado pongo lo siguiente al final
RETURN thisform.text3.value
De esta manera regresa al Text3, para este caso particular.
Probalo
Saludos
Esteban

Antonio Meza

unread,
Jun 8, 2011, 12:03:48 AM6/8/11
to Comunidad de Visual Foxpro en Español
Hola!!!

Te recomiendo que lo hagas en el valid tal y como tienes tu
validacion, y efectivamente no podras usar el SETFOCUS para mover el
cursor, pero para eso esta el RETURN hace lo mismo que el setfocus,
pero debes darle el TAB ORDER a los controles para que funcione mejor,
bueno para tengas mas control, para ello sin tener selecionado ningun
control solo el formulario en el menu VIEW es la primera opcion que
dice TAB ORDER, yo uso la forma Interactiva pero puedes usar la
manual.

Luego que asignes el tab orden a tus controles, en tu primer textbox
prueba retornando un valor numerico de la siguiente forma:

Return -1 && Retorna hacia atras el focus puedes usar -2, -3
segun sea tu caso.
Return 0 && Hace que el textbox no pierda el focus, esto es
ideal cuando buscas algo y no lo encuentras y quieres buscar de nuevo
Return 1 && Mueve el focus al siguiente control segun el Tab
Order
Return 2 && Salta al segundo control segun el tab order
Return 3 && Salta al tercer control
etc!!

Lo mejor es hacer pruebas para que veas como funciona, ahora bien si
tu textbox tiene el tab order 5 y en ese haces la validacion y al que
quieres saltar tienes el tab order 8 no vas a poner Return 8, va a
poner Return 3 que estas diciendo que vas a saltar 2 controles que
estan antes que el.

Espero te haya explicado bien!!

Saludos
Antonio Meza

stallman stallman

unread,
Jun 8, 2011, 12:25:40 AM6/8/11
to publice...@googlegroups.com
Excelente Don Antonio, ya probé éste mecanismo y me funciona completamente.

Te agradezco mucho, está muy completo.

Christian López Gómez

unread,
Jun 8, 2011, 12:58:20 PM6/8/11
to publice...@googlegroups.com
Puedes usar. Return. Thisform.text1

Y pone el cursor sobre el objeto deseado

El 07/06/11, stallman stallman <stall...@gmail.com> escribió:


> Excelente Don Antonio, ya probé éste mecanismo y me funciona completamente.
>
> Te agradezco mucho, está muy completo.
>

--
Enviado desde mi dispositivo móvil

Atentamente.
Ing. Christian López Gómez
Jefe de Sistemas
MSN: christi...@hotmail.com
christi...@gmail.com

Depto. Sistemas
P.D. "Un buen programador nunca muere solo se pierde en un proceso"

extremo

unread,
Jun 8, 2011, 1:07:02 PM6/8/11
to Comunidad de Visual Foxpro en Español
vaya, la tecnica del return no la conocia,

Como alguien dijo aca mismo, uno nunca termina de aprender el Zorro.

Me parecio excelentes sus aportes. Ademas aprendi algo nuevo.
Bendiciones



On 8 jun, 12:58, Christian López Gómez <christian.v...@gmail.com>
wrote:
> Puedes usar. Return. Thisform.text1
>
> Y pone el cursor sobre el objeto deseado
>
> El 07/06/11, stallman stallman <stallma...@gmail.com> escribió:
>
> > Excelente Don Antonio, ya probé éste mecanismo y me funciona completamente.
>
> > Te agradezco mucho, está muy completo.
>
> --
> Enviado desde mi dispositivo móvil
>
> Atentamente.
> Ing. Christian López Gómez
> Jefe de Sistemas
> MSN:   christian_v...@hotmail.com
>            christian.v...@gmail.com

GeoSys Diseño de Software

unread,
Jun 8, 2011, 2:34:47 PM6/8/11
to publice...@googlegroups.com
Yo le pongo así también:

RETURN (thisform.telefono1) && El cursor salta al TextBox telefono1.

Pero también uso:

Return 0 && No sale del foco.

Return -1 && Salta al control anterior.

Return 1 && Salta al siguiente control.

Return -3 && Salta 3 controles anteriores.

Return 3 && Salta 3 controles siguientes.

A mi me gusta validar todo en el VALID, el LostFocus lo uso para tomar acciones cuando pierde el enfoque.

VFP es muy poderoso, de eso no hay duda.


Saludos

Anthony Contreras Peralta

Costa Rica.

Antonio Meza

unread,
Jun 8, 2011, 3:20:33 PM6/8/11
to publice...@googlegroups.com
Hola!!!
 
no sabia que se podia usar poniendo el nombre del control, ya lo habia intentado pero no me salia porque me faltaban los parentesis!!!
 
Returm (thisform.text3)
 
Excelente gracias por el Tip, se tiene mejor control!!!
 
saludos
Antonio Meza

stallman stallman

unread,
Jun 9, 2011, 1:33:35 AM6/9/11
to publice...@googlegroups.com
Muchas Gracias Señores.

Resultó muy interesante y novedoso !


Saludos!
Reply all
Reply to author
Forward
0 new messages