Mensagens - capturar tab de teclas do aplicativo |
Top Previous Next |
|
// em alguns componentes ou telas certas teclas não respondem ao KeyDown // da form mesmo no KeyPreview = True. // Isto é o caso do TAB... como resolver?
TForm1 = class(TForm) procedure ControlaKeys(var Msg: TMsg; var Handled: Boolean); private end;
implementation
var OldAppMsg: TMessageEvent;
procedure TForm1.FormCreate(Sender: TObject); begin // salva o processador de mensagens do app OldAppMsg := Application.OnMessage; // reinderessa o mesmo Application.OnMessage := ControlaKeys; end;
procedure TForm1.ControlaKeys(var Msg: TMsg; var Handled: Boolean); begin // captura teclas de todo o application para cá if (Msg.message = WM_KEYDOWN) then case Msg.wParam of Vk_Down : 'Luck Skywalker'; Vk_Tab : 'Darth Vader'; end; end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin // restaura Application.OnMessage := OldAppMsg; end;
|