Event Control.KeyPress (gb.qt4)
Event KeyPress ( )
Gerado quando uma tecla é pressionada enquanto o controle tem o foco.
Você obtém informações sobre a tecla pressionada com a classe
Key.
Após a rotina KeyPress tiver terminada, o texto dentro de um
TextBox
é editado por Gambas, de acordo com a tecla. Por isso, não faz sentido escrever
de volta para a propriedade Text qualquer informação a partir do evento KeyPress
nem de qualquer uma das sub-rotinas e funções que ele chama.
Em vez disso use o evento
Change que vem após a atualização do conteúdo.
Exemplo
PUBLIC SUB n_Keypress()
'Manipulador de eventos para o Grupo n - isto é um array 9 por 9 de TextBoxes
DIM ltext AS Variant
DIM ltag AS Variant
ltext = Key.Text ' Obter o texto da tecla
ltag = LAST.Tag ' A propriedade Grup
IF NOT IsNull(ltext) THEN
IF Mid(ltext, 1) >= "0" AND Mid(ltext, 1) <= "9" THEN
' Imprime uma das teclas numéricas de 0 a 9
z[ltag] = Int(Asc(ltext) - 48) ' Converter String para Integer e salvar na array tipo Integer
...
' não deve atualizar o campo como, por exemplo: n.Text = 48 + i
Cancelamento do evento
Se você parar o evento com
STOP EVENT, o controle não vai receber nenhum evento do teclado.