Event Control.KeyPress (gb.qt4)
Event KeyPress ( )
Est levé si une touche est pressée pendant que le contrôle a le focus.
Vous obtenez les informations concernant la touche pressée avec la classe
Key.
Une fois la routine "KeyPress" terminée, le texte dans la
TextBox est édité par Gambas, en fonction de la touche. Aussi cela n’a-t-il pas de sens de revenir écrire dans la propriété "Text" une quelconque information en provenance du gestionnaire d’évènement "KeyPress", ni d’aucune subroutine ou fonction qu’il appelle.
Utilisez plutôt l’évènement "Change", qui survient après la mise à jour du contenu.
Exemple
PUBLIC SUB n_Keypress()
' Gestionnaire d’évènement pour le "Group n" – qui est le tableau de "TextBoxes" 9 par 9
DIM ltext AS Variant
DIM ltag AS Variant
ltext = Key.Text ' Lit le code de touche
ltag = LAST.Tag ' La propriété Group
IF NOT IsNull(ltext) THEN
IF Mid(ltext, 1) >= "0" AND Mid(ltext, 1) <= "9" THEN
' A pressé l’une des touches numériques 0 à 9
z[ltag] = Int(Asc(ltext) - 48) ' convertit la chaîne en "integer" et sauve dans le tableau d’entiers
...
' Ne doit pas mettre à jour le champ, par exemple : n.Text = 48 + i
Annulation d’évènement
Si vous stoppez l’Evènement à l’aide de
STOP EVENT, le contrôle ne verra pas du tout l’évènement clavier.