cambiar foco de un control a otro
Hola comunidad
Necesito saber como se puede lograr que cuando un usuario esta escribiendo algo en un Edit por ejemplo y presione ENTER cambie a otro edit para continuar. he tratado llamando la propiedad Edit1->Focused() pero no lo hace y no se si estoy haciendo algo mal o no. gracias de antemano |
NOMBRE_DEL_OBJETO.SetFocus;
en el evento onexit del primer objeto |
Hola impadron.
Probá asignando este código a el evento OnKeyPress de los Edits en que desees ese comportamiento: Código:
void __fastcall TForm1::EditKeyPress(TObject *Sender, char &Key) |
Hola.
Yo lo que hago es poner este código en el FormKeyDown del formulario, además de esto tienes que activar el KeyPreview del mismo a true. Con esto te servirá para todos los controles del formulario.
Saludos Edito: Perdón perdón... no había visto que era de C++ |
Cita:
Así que traduciendo a C++ y tomando en cuenta que quiere verificar la tecla Enter sería: Código:
void __fastcall TForm1::FormCreate(TObject *Sender) |
Cita:
|
Quisiera hacer un comentario al último código de ecfisa.
Declaras un puntero a TMsg, ese puntero no apunta a nada válido, no está inicializado. Antes o después dará lugar a un error difícil de depurar. Las prisas...;) Tu código está mejor así: Código:
void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key, Código:
void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key, Código:
void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key, Saludos. |
Lo que me faltó aclarar es que como en ese caso se altera el comportamiento de la tecla Enter para todos los componentes del Form, puede dar resultados no deseados. Como por ejemplo en el caso del StringGrid.
Saludos. |
Cita:
Tenés toda la razón sobre el puntero (que es innecesario) y sobre el apuro ;), escribí el código directo sobre el mensaje y la traducción no fué la mejor...:o Pero con referencia a el código: Código:
void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key, Un saludo.:) |
Y ya que estamos me acordé de otro modo de hacer lo mismo. :)
Código:
void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key, |
Tienes razón en lo del Beep. :)
Siguiendo la estela del bajo nivel, nada nos impide usar solo la API. :D Código:
void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key, |
Una variante, usando un componente ApplicationEvents:
// Saludos |
Buena variante roman. :)
Saludos. |
Lo que siempre digo: román nunca deja de sorprenderme... ;):)
Saludos. |
Pues es prácticamente lo mismo que lo de ustedes, con el único agregado de comprobar se es un Edit. Lo que es a mi, eso del PeekMessage en delphi como que no se me da :p
// Saludos |
Gracias amigos por su ayuda
como los objetos estan desorganizados utilize lo siguiente Código:
NOMBRE_DEL_OBJETO->SetFocus; |
La franja horaria es GMT +2. Ahora son las 00:16:19. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi