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);
}
}
O así:
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);
}
}
Aunque lo que apuntó
newtron se entiende mejor y tiene una traducción casi literal:
Código:
void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
if(Key == VK_RETURN){
Key = 0;
SelectNext(ActiveControl, true, true);
}
}
Las dos opciones son perfectamente válidas
Saludos.