orden de controles en un dialogo enter espaciadora

Post Reply
diegopolverelli
Posts: 149
Joined: Thu Jun 21, 2007 3:26 pm

orden de controles en un dialogo enter espaciadora

Post by diegopolverelli »

Hola, tengo un pequeño problema; tengo un dialogo con 6 controles; me interesa que al ejecutar, el control pase del text1, por ej, con enter al text2, con enter al text3, con enter a un boton "ingresa", y con enter nuevamente al text1, sin ir, al siguiente (por ej, seria text 4). Si presiono el "ingresa" con la tecla espaciadora, como la funcion que ejecuta este boton culmina con un text1:setfocus(), todo funciona perfecto; ahora, si en lugar de presionar la espaciadora, presiono enter, el programa "se saltea" el text1:setfocus, y si bien ejecuta la funcion asociada a "ingresa", el foco queda en text4, provocando por lo general un error en el operador de la aplicacion. ¿como puedo hacer para que el enter me respete este setfocus al igual que la espaciadora?
Gracias. Atte.
User avatar
jose_murugosa
Posts: 943
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay
Contact:

Re: orden de controles en un dialogo enter espaciadora

Post by jose_murugosa »

diegopolverelli wrote:Hola, tengo un pequeño problema; tengo un dialogo con 6 controles; me interesa que al ejecutar, el control pase del text1, por ej, con enter al text2, con enter al text3, con enter a un boton "ingresa", y con enter nuevamente al text1, sin ir, al siguiente (por ej, seria text 4). Si presiono el "ingresa" con la tecla espaciadora, como la funcion que ejecuta este boton culmina con un text1:setfocus(), todo funciona perfecto; ahora, si en lugar de presionar la espaciadora, presiono enter, el programa "se saltea" el text1:setfocus, y si bien ejecuta la funcion asociada a "ingresa", el foco queda en text4, provocando por lo general un error en el operador de la aplicacion. ¿como puedo hacer para que el enter me respete este setfocus al igual que la espaciadora?
Gracias. Atte.
Si los controles estàn en el archivo de recursos, debes indicar el orden allí, de lo contrario, el orden será el mismo en que aparezcan en el código, vale decir que si deseas que el tab pase de el control x al contro y, deberás definirlos en ese orden en el código.

Para alterar ese orden, lo haces con el metodo Losftocus() del control o en la acción en el caso de botones o donde te lo permita, es decir, todo control permite ejecutar un block de codigo al perder foco, en ese block pones un controlx:Setfocus() y en algùn caso será necesario usar la variable de instancia ojump del control que abandonas.

Aquí tienes un ejemplo que muda de un botón a un combobox que no es el siguiente en el orden de definicion:

oBoton[1]:oJump:=oCombo[1], oCombo[1]:SetFocus()

Espero te ayude.
Saludos/Regards,
José Murugosa
FWH + Harbour + Bcc7. Una seda!
diegopolverelli
Posts: 149
Joined: Thu Jun 21, 2007 3:26 pm

Re: orden de controles en un dialogo enter espaciadora

Post by diegopolverelli »

Espectacular...!!! Lo que es saber, eh... Gracias...!!!

jose_murugosa wrote:
diegopolverelli wrote:Hola, tengo un pequeño problema; tengo un dialogo con 6 controles; me interesa que al ejecutar, el control pase del text1, por ej, con enter al text2, con enter al text3, con enter a un boton "ingresa", y con enter nuevamente al text1, sin ir, al siguiente (por ej, seria text 4). Si presiono el "ingresa" con la tecla espaciadora, como la funcion que ejecuta este boton culmina con un text1:setfocus(), todo funciona perfecto; ahora, si en lugar de presionar la espaciadora, presiono enter, el programa "se saltea" el text1:setfocus, y si bien ejecuta la funcion asociada a "ingresa", el foco queda en text4, provocando por lo general un error en el operador de la aplicacion. ¿como puedo hacer para que el enter me respete este setfocus al igual que la espaciadora?
Gracias. Atte.
Si los controles estàn en el archivo de recursos, debes indicar el orden allí, de lo contrario, el orden será el mismo en que aparezcan en el código, vale decir que si deseas que el tab pase de el control x al contro y, deberás definirlos en ese orden en el código.

Para alterar ese orden, lo haces con el metodo Losftocus() del control o en la acción en el caso de botones o donde te lo permita, es decir, todo control permite ejecutar un block de codigo al perder foco, en ese block pones un controlx:Setfocus() y en algùn caso será necesario usar la variable de instancia ojump del control que abandonas.

Aquí tienes un ejemplo que muda de un botón a un combobox que no es el siguiente en el orden de definicion:

oBoton[1]:oJump:=oCombo[1], oCombo[1]:SetFocus()

Espero te ayude.
Post Reply