Com o Gambas podemos utilizar a
classe "Key" para conhecermos as teclas pressionada pelo usuário
sobre qualquer controle gráfico. cada controle, possui dois
eventos para indicar a ação do usuário:
- KeyPress : é ativado quando u usuário pressiona a tecla.
- KeyRelease : é ativado quando o usuário solta a tecla.
Estes eventos não
dispõe de parâmetros, já que a classe "Key"
armazena a cada momento o código da tecla que acaba de ser
pressionada ou solta. É uma classe estática, por tanto
não é necessário que criemos nenhum objeto dessa
classe para utiliza-la.
...
PUBLIC SUB Button1_KeyPress() Message.Info(Key.Code) END
...
Quando
se pressiona uma tecla com o foco sobre um botão, mostra-se uma
mensagem com o código da tecla pressionada. Se pressionarmos por
exemplo, a seta direita, retornara o valor 4116. Como já sabemos
que esse código corresponde a seta direita. Se desejarmos que o evento só aoa pressionarmos uma determinada tecla:
...
PUBLIC SUB Button1_KeyPress() IF Key.Code = 4116 THEN Message("Foi pressionado a tecla = seta direita") END IF END
...
Também
podemos nos valer das constantes da classe "Key" para nos livrarmos dos
estranhos códigos numéricos de cada tecla:
...
PUBLIC SUB Button1_KeyRelease() IF Key.Code = Key.Right THEN Message("Has soltado la tecla de flecha derecha") END IF END
...
Por
último, o evento KeyPress é cancelavel, de modo que
podemos evitar que o pressionamento da tecla chege ao programa, para
cancelar por exemplo uma ação do usuário que
não deseja sua execução.
...
PUBLIC SUB Button1_KeyPress() IF key.Code <> key.Tab THEN STOP EVENT END
...
Observa-se no exemplo, que evita-se o evento quando a tecla "Tab"
é pressionada, devido a importância dessa tecla para
mover-se pelos formulários sem necessidade do mouse.
A classe "Key"
possuem também os valores "Alt", "Code", "Control" e
"Shift" para saber se estas teclas estão pressionadas.
|