Page 1 of 1
orden de controles en un dialogo enter espaciadora
Posted: Sun Dec 30, 2007 3:13 am
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.
Re: orden de controles en un dialogo enter espaciadora
Posted: Mon Dec 31, 2007 1:04 pm
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.
Re: orden de controles en un dialogo enter espaciadora
Posted: Wed Jan 02, 2008 3:14 pm
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.