orden de controles en un dialogo enter espaciadora

orden de controles en un dialogo enter espaciadora

Postby diegopolverelli » Sun Dec 30, 2007 3:13 am

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.
diegopolverelli
 
Posts: 149
Joined: Thu Jun 21, 2007 3:26 pm

Re: orden de controles en un dialogo enter espaciadora

Postby jose_murugosa » Mon Dec 31, 2007 1:04 pm

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!
User avatar
jose_murugosa
 
Posts: 1145
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay

Re: orden de controles en un dialogo enter espaciadora

Postby diegopolverelli » Wed Jan 02, 2008 3:14 pm

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.
diegopolverelli
 
Posts: 149
Joined: Thu Jun 21, 2007 3:26 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 35 guests