• Viernes 29 de Marzo de 2024, 15:34

Autor Tema:  Uso de la tecla Enter  (Leído 4995 veces)

avefenix1810

  • Miembro activo
  • **
  • Mensajes: 74
    • Ver Perfil
Uso de la tecla Enter
« en: Viernes 22 de Abril de 2011, 03:56 »
0
Hola a todos.

Nuevamente he retomado el programa que estoy haciendo hace un par de meses. Hasta ahora va todo bien, pero al ejecutarlo me di cuenta de una cosa... cada vez que estoy ingresando los datos de una planilla en mi programa, utilizo el mouse para pasar de un TEdit a otro. Como estoy tan acostumbrado a utilizar el mouse casi no me "molestaba", pero al hacer que otra persona me ayudara a ingresar datos me reclamaron el no poder utilizar la tecla ENTER para pasar de un TEdit a otro.

Alguien me puede ayudar a resolver esto.

Gracias.  :comp:

softevolutions

  • Miembro activo
  • **
  • Mensajes: 84
  • Nacionalidad: es
    • Ver Perfil
    • http://www.softevolutions.es
Re: Uso de la tecla Enter
« Respuesta #1 en: Martes 26 de Abril de 2011, 10:25 »
0
Recuerda que en windows, para que el foco pase de un componente a otro, se utiliza el TABULADOR.

De todas formas, aquí tienes una pista:

Utilizo el mensaje CM_DIALOGKEY y el parametro VK_TAB para enviarselo al componente TEdit en cuestion cuando se pulse la tecla ENTER.

Para envair mensajes usa la funcion SendMessage.

Esto hará que cuando pulses la tecla ENTER, el programa envie un mensaje indicando que se ha pulsado la tebla TABULADOR. Eso hará que el foco pase al siguiente componente que pueda recibirlo.
:: Lo que puedes hacer sólo lo limita tu propia imaginación ::
Soft Evolutions Technology - http://www.softevolutions.es

avefenix1810

  • Miembro activo
  • **
  • Mensajes: 74
    • Ver Perfil
Re: Uso de la tecla Enter
« Respuesta #2 en: Miércoles 27 de Abril de 2011, 04:49 »
0
Gracias por responder softevolutions. No me queda muy claro lo que tengo que hacer, recuerda que soy relativamente nuevo en esto de la programación, pero voy a investigar lo que dices.

Gracias.  :beer:

softevolutions

  • Miembro activo
  • **
  • Mensajes: 84
  • Nacionalidad: es
    • Ver Perfil
    • http://www.softevolutions.es
Re: Uso de la tecla Enter
« Respuesta #3 en: Miércoles 27 de Abril de 2011, 09:34 »
0
Disculpa si te lié más que ayudar, pero creo que se aprende más con pistas que con el codigo exacto.

La sentencia se construye de la siguiente forma:

SendMessage(Handle del componente que recibe el mensaje, CM_DIALOGKEY, VK_TAB, 0);

En el caso de un TEdit sería;

SendMessage(Edit1->Handle, CM_DIALOGKEY, VK_TAB, 0);

Pon este codigo para que se ejecute cuando pulses en el Edit1 la tecla enter. Hazlo en el evento OnKeyDown. Verás que el foco pasará a otro componente, siempre y cuando tengas en el formulario de prueba algun componente que pueda recibir el foco.
:: Lo que puedes hacer sólo lo limita tu propia imaginación ::
Soft Evolutions Technology - http://www.softevolutions.es

avefenix1810

  • Miembro activo
  • **
  • Mensajes: 74
    • Ver Perfil
Re: Uso de la tecla Enter
« Respuesta #4 en: Jueves 28 de Abril de 2011, 03:40 »
0
Gracias nuevamente Softevolutions, había seguido tu consejo y en la ayuda del Builder encontre lo siguiente:

Use the Windows API call, SendMessage, to send a message to a control using the Windows message queue. SendMessage takes the same parameters as the Perform method, except that you must identify the target control by passing its Window handle. Thus, instead of writing

MsgResult = TargetControl->Perform(MY_MYMESSAGE, 0, 0);

you would write

MsgResult = SendMessage(TargetControl->Handle, MYMESSAGE, 0, 0);


Es la función que mencionas, aunque todavía no la había implementado. Gracias por tu ayuda.  :beer:

aleks170

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Re: Uso de la tecla Enter
« Respuesta #5 en: Miércoles 1 de Junio de 2011, 23:43 »
0
es muy facil, te posicionas desde tu primer edit (supongamos que son varios en forma de lista), y en el apartado de events buscas el evento OnKeyPress le das doble click y escribes el codigo siguiente

if(Key==13)
Edit2->SetFocus();

de esta manera cada que presiones el boton enter te va a llegar al siguiente boton, y asi lo haces con los demas edits dependiendo donde quieres el foco.. suerte.