![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Pero... es que tu respuesta es totalmente correcta mi estimado newtron!
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)
{
KeyPreview = true; /* se puede asignar desde el Object Inspector */
}
void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
TMsg *Msg;
if(Key == VK_RETURN){
PeekMessage(Msg, 0, WM_CHAR, WM_CHAR,PM_REMOVE); /* Quitar Beep */
SelectNext(ActiveControl, true, true);
}
}
![]()
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
|
#2
|
||||
|
||||
|
Pues fíjate que hasta cuando me equivoco acierto.
![]()
__________________
Be water my friend. |
|
#3
|
||||
|
||||
|
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,
TShiftState Shift)
{
TMsg Msg;
if(Key == VK_RETURN){
PeekMessage(&Msg, 0, WM_CHAR, WM_CHAR,PM_REMOVE);
SelectNext(ActiveControl, true, true);
}
}
Código:
void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
if(Key == VK_RETURN){
PeekMessage(0, 0, WM_CHAR, WM_CHAR,PM_REMOVE);
SelectNext(ActiveControl, true, true);
}
}
Código:
void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
if(Key == VK_RETURN){
Key = 0;
SelectNext(ActiveControl, true, true);
}
}
![]() Saludos. Última edición por escafandra fecha: 22-09-2011 a las 20:08:35. |
|
#4
|
||||
|
||||
|
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.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
|
#5
|
||||
|
||||
|
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...![]() Pero con referencia a el código: Código:
void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
if(Key == VK_RETURN){
Key = 0; // no quita el Beep
SelectNext(ActiveControl, true, true);
}
}
Un saludo. ![]()
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 22-09-2011 a las 20:33:28. |
|
#6
|
||||
|
||||
|
Y ya que estamos me acordé de otro modo de hacer lo mismo.
![]() Código:
void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
if(Key == VK_RETURN) {
PeekMessage(0, 0, WM_CHAR, WM_CHAR, PM_REMOVE);
Perform(WM_NEXTDLGCTL, false, false);
}
}
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 22-09-2011 a las 21:03:17. |
|
#7
|
||||
|
||||
|
Tienes razón en lo del Beep.
![]() Siguiendo la estela del bajo nivel, nada nos impide usar solo la API. ![]() Código:
void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
if(Key == VK_RETURN){
PeekMessage(0, 0, WM_CHAR, WM_CHAR,PM_REMOVE);
SendMessage(Handle, WM_NEXTDLGCTL, 0, 1);
}
}
|
|
#8
|
||||
|
||||
|
Una variante, usando un componente ApplicationEvents:
// Saludos |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Foco en Page control | valeria | Varios | 6 | 01-06-2015 16:29:49 |
| Cambiar foco desde otro form | Sandy656 | Varios | 3 | 25-08-2006 14:29:41 |
| cambiar el foco de control | beatriz g | Varios | 10 | 24-08-2006 15:27:48 |
| Mover el Foco al Siguiente Control con ENTER | onlytk | Varios | 5 | 27-10-2005 20:33:13 |
| como se que control tenia el foco | JavierO | Varios | 7 | 25-08-2005 02:47:17 |
|