Cita:
Empezado por odiseeus
gracias, .... me sirvió de guía pero me encantaría saber un poco mas exacto como puedo anular el tab como cambio de foco entre los componentes.. gracias.
|
Hola.
En este ejemplo, anulo la tecla Tab como generadora del cambio de foco y le doy esta función a la tecla F2.
Unit1.h:
Código:
...
private:
TMessageEvent OldMessageEvent;
void __fastcall ApplicationMessage(tagMSG &msg, bool &handled);
...
Unit1.cpp:
Código:
...
void __fastcall TForm1::ApplicationMessage(tagMSG &msg, bool &handled)
{
if (msg.message == WM_KEYDOWN)
switch (msg.wParam) {
case VK_TAB : handled = true; break; // TAB
case VK_F2: msg.wParam = VK_TAB; break; // F2 = TAB
}
}
void __fastcall TForm1::FormCreate(TObject *Sender)
{
OldMessageEvent = Application->OnMessage;
Application->OnMessage = ApplicationMessage;
}
//...
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
Application->OnMessage = OldMessageEvent;
}
...
Podes asignar el comportamiento a otra tecla, o a ninguna como en este código:
Código:
void __fastcall TForm1::ApplicationMessage(tagMSG &msg, bool &handled)
{
if (msg.message == WM_KEYDOWN && msg.wParam == VK_TAB)
handled = true;
}
Saludos.