Como monitorar o estado do Caps Lock, Num Lock e tecla Insert
Há situações em onde ocorre a necessidade de ser controlado o estado
do CAPS Lock ou NUM Lock. Uma tela de login é um bom exemplo de local.
Uma forma muito comum de mostrar para o usuário o estado destas teclas
é através de um status bar em seu formulário principal.
Veja o exemplo, crie um formulário com um status bar,
e adiciona ao status bar 3 panels.
Em seguida, na sessão private, declare o seguinte procedimento:
1
| procedure OnMessageOwn(var Msg: TMsg; var Handled: Boolean); |
procedure OnMessageOwn(var Msg: TMsg; var Handled: Boolean);
A implementação do procedimento deverá ser conforme o exemplo abaixo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| procedure TForm1.OnMessageOwn(var Msg: TMsg; var Handled: Boolean) ;
var
KeyState: TKeyboardState;
begin
GetKeyboardState(KeyState);
if KeyState[VK_NUMLOCK] = 0 then
StatusBar1.Panels[0].Text:= ''
else
StatusBar1.Panels[0].Text:= 'Num';
if KeyState[VK_CAPITAL] = 0 then
StatusBar1.Panels[1].Text:= ''
else
StatusBar1.Panels[1].Text:= 'Caps';
if KeyState[VK_INSERT] = 0 then
StatusBar1.Panels[2].Text:= ''
else
StatusBar1.Panels[2].Text:= 'Ins';
end; |
procedure TForm1.OnMessageOwn(var Msg: TMsg; var Handled: Boolean) ;
var
KeyState: TKeyboardState;
begin
GetKeyboardState(KeyState);
if KeyState[VK_NUMLOCK] = 0 then
StatusBar1.Panels[0].Text:= ''
else
StatusBar1.Panels[0].Text:= 'Num';
if KeyState[VK_CAPITAL] = 0 then
StatusBar1.Panels[1].Text:= ''
else
StatusBar1.Panels[1].Text:= 'Caps';
if KeyState[VK_INSERT] = 0 then
StatusBar1.Panels[2].Text:= ''
else
StatusBar1.Panels[2].Text:= 'Ins';
end;
Agora para finalizar, no evento OnCreate do seu formulário,
deixe conforme o exemplo abaixo:
1
2
3
4
| procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnMessage := OnMessageOwn;
end; |
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnMessage := OnMessageOwn;
end;
Pronto!
Ao executar o projeto, você verá sua aplicação monitorando o CAPS Lock,
Num Lock e Insert.
Fonte Base: http://www.planetadelphi.com.br/dica/6824/verificar-estado-da-tecla-caps-lock
-
InfusTec
-
3.470 views
- 0 comentários
- 11 de outubro de 2016
Está gostando do conteúdo? Considere pagar um cafezinho para nossa equipe!
Posts Relacionados - Continue Aprendendo