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.
orden de controles en un dialogo enter espaciadora
-
- Posts: 149
- Joined: Thu Jun 21, 2007 3:26 pm
- jose_murugosa
- Posts: 943
- Joined: Mon Feb 06, 2006 4:28 pm
- Location: Uruguay
- Contact:
Re: orden de controles en un dialogo enter espaciadora
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.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.
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!
José Murugosa
FWH + Harbour + Bcc7. Una seda!
-
- Posts: 149
- Joined: Thu Jun 21, 2007 3:26 pm
Re: orden de controles en un dialogo enter espaciadora
Espectacular...!!! Lo que es saber, eh... Gracias...!!!
jose_murugosa wrote: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.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.
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.