Tutorial Gambas

6. Evento KeyPress


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.
 << Anterior     Próximo >>  




Autor e licença

Publicado por Vários autores em http://wiki.gnulinex.org/gambas/4

Licença Creative Commons.

Este conteúdo foi publicado por Antonio Sousa, respeitando as licenças  de publicações . Se for detectado algum erro na atribuição do tutorial relacionado com seus direitos de atribuição contate gambastutor@yahoo.com.br e procederemos as modificações


   
Hosted by www.Geocities.ws

1