Event Control.KeyPress (gb.qt4)
Event KeyPress ( )
Viene sollevato quando si preme un tasto mentre il controllo ha lo stato attivo.
Si ottengono informazioni sul tasto premuto attraverso la classe
Key.
Al termine della routine KeyPress, il testo all'interno di una
TextBox viene modificato da Gambas, in base al tasto.
Quindi non ha senso riscrivere nella proprietà Text qualsiasi informazione dal gestore eventi KeyPress, né da nessuna delle subroutine e funzioni che chiama.
Conviene utilizzare al suo posto l'evento
Change, che viene dopo l'aggiornamento del contenuto.
Esempio
PUBLIC SUB n_Keypress()
' Gestore di eventi per il Gruppo n - si tratta dell'array di TextBox 9 per 9
DIM ltext AS Variant
DIM ltag AS Variant
ltext = Key.Text ' Ottiene il testo della chiave
ltag = LAST.Tag ' La proprietà del gruppo
IF NOT IsNull(ltext) THEN
IF Mid(ltext, 1) >= "0" AND Mid(ltext, 1) <= "9" THEN
' È stato premuto uno dei tasti numerici da 0 a 9
z[ltag] = Int(Asc(ltext) - 48) ' converte la stringa in numero intero e lo salva in un array di interi
...
' non occorre aggiornare il campo come ad es.: n.Text = 48 + i
Annullamento dell'evento
Se interrompi l'evento con
STOP EVENT, il controllo non vedrà mai l'evento della tastiera.