FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Cambiar de campo con flechitas
Buenos dias a todos.
Estoy utilizando delphi 6 y estoy viendo si es posible hacer lo siguiente: Tengo un formulario con 40 tedit, en los cuales quiero ver si es posible hacer que cuando se presionen las teclas de flechitas Abajo o Arriba salte al campo inmediato que este bajo dicho tedit. Ejemplo: Fomulario tedit1 tedit4 tedit2 tedit5 tedit3 tedit6 El orden de tabularcion es 1,4,2,5,3,6 y necesito que si presiono flechitas si estoy en el campo 1 me pase al campo 2 y si estoy en el cinco me envie al 6 si presiono flechitas hacia abajo. Nota: Se que existe la propiedad setfocus de cada objeto, pero el inconveniente es que la aplicacion ya cuenta con 30 formulario y hacerlo uno por uno me resulta mucho tiempo, no se si existe una forma de hacerlo mas facil en donde con una sola funcion lo logre y no tener que decirle campo por campo. Sin más me despido y gracias por su ayuda. |
#2
|
|||
|
|||
Enter, Flecha arriba y abajo
if (Key=13)or(Key=40)or(Key=38) Then nombreFormulario.SelectNext(nombreFormulario.ActiveControl,Key<>38,true);
__________________
Toda Teoria es Gris mas es verde en Arbol de Dorados Frutos que es la Vida (Goethe) |
#3
|
|||
|
|||
Si esta bien pero
Ya valide lo que me pasaste y si esta bien, pero tengo 6 tedit
tedit1 tedit2 tedit3 tedit4 tedit5 tedit6 Si presiono tab y estoy en el campo 1 me pasa al campo 2 pero si presiono flechitas me pasa al 2 y yo quisiera que fuera el 3, esto es si presiono flechitas me pasa a al campo de arriba o abajo, independiente de su tab order. |
#4
|
||||
|
||||
Los métodos que existen, éste y el que existe utilizando mensajes utilizan el TabOrder para posicionarse en el "siguiente" control; Me da la impresión de que si quieres que al pulsar la flecha Derecha se posicione en el más próximo en esa dirección, independientemente del TabOrder, e igual en las siguientes direcciones lo vas a tener que realizar tú "a mano".
Deberás hacer una rutina que te calcule, a partir de un control, el más prosimo en una determinada dirección. Debes repasar todos los componentes del Form (Form.ComponentCount y Form.Components[i]) y detectar cual el el "siguiente" a partir de la dirección (flecha pulsada). Sólo un detalle, ten en cuenta que estén dentro del mismo contenedor, ya que no te servirá para controles que estén en diferentes pestañas (por ejemplo).
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#5
|
||||
|
||||
¿Y por qué no simplemente:
Código:
Flecha derecha: SelectNext(Control, true, false) Flecha izquierda: SelectNext(Control, falsa, false); Flecha abajo: SelectNext(Control, true, false), SelectNext(Control, true, false) Flecha arriba: SelectNext(Control, false, false), SelectNext(Control, false, false) // Saludos |
#6
|
|||
|
|||
Creo que ya se que voy a hacer
De la coleccion de controlcount
voy a hacer un recorrido en los objetos y el inmediato abajo o arriba mas cercano ese va a obtener el foco. propiedades top left Gracias por su ayuda, voy a ponerlo y lo voy a publicar en el foro, por su ayuda gracias. |
|
|
|