Cet article concerne la gestion de la saisie au clavier dans Microsoft Small Basic.


Fenêtre Graphique

Dans la fenêtre graphique, il y a trois méthodes pour gérer la saisie clavier.

  • Les contrôles de saisie de texte
  • Les événements de saisie de texte
  • Les événements d'appui et de relâchement des touches clavier

Les Contrôles de Saisie de Texte

Chaque Controls.AddTextBox() et Controls.AddMultiLineTextBox() ajoute une zone de saisie de texte dans la fenêtre graphique. Dans une zone de saisie de texte, vous pouvez entrer du texte au clavier et avec Controls.GetTextBoxText() vous pouvez récupérer la valeur qui a été saisie. Pouvez également définir vous brancher sur l'évènement Controls.TextTyped.

L'Evénement TextInput

La sous-routine de gestion de l'événement TextInput est appelée lorsqu'une touche est appuyée. Et vous pouvez récupérer le texte saisie depuis la propriété GraphicsWindow.LastText.

Les Evénements KeyDown et KeyUp

Vous pouvez définir l'événement pour récupérer les touches qui sont appuyées avec GraphicsWindow.KeyDown, et récupérer les touches qui sont relâchées avec GraphicsWindow.KeyUp. Voici un code d'exemple.

GraphicsWindow.DrawText(10 , 10, "Appuyer sur une touche pour l'afficher.")
GraphicsWindow. KeyDown = OnKeyDown
Sub OnKeyDown
  TextWindow.WriteLine(GraphicsWindow.LastKey)
EndSub

Cette table affiche les valeurs pour GraphicsWindow.LastKey .

Key top E Key top J LastKey Commentaires
A-Z A-Z A-Z  
/ \ AbntC1 Brazil key, IME=ENG
+ + Add numeric keypad
apps apps Apps  
Back Space Back  
Break Break Cancel Ctrl+Pause
Caps Lock Caps Lock Capital  
5 5 Clear !NumLock
. . Decimal NumLock
Delete Delete Delete  
/ / Divide numeric keypad
Down  
End End End  
Esc Esc Escape  
F1-F9 F1-F9 F1-F9  
F11-F12 F11-F12 F11-F12  
0-9 0-9 D0-D9  
Home Home Home  
N/A 無変換 ImeNonConvert non convert
Insert Insert Insert  
Left  
Ctrl Ctrl LeftCtrl left control
⇧Shift LeftShift  
N/A screen LWin display
Windows Windows LWin left Window
* * Multiply numeric keypad
Page Down PgDn Next
Num Lock Num Lk NumLock  
0-9 0-9 NumPad0-NumPad9 NumLock
; + Oem1 IME=ENG
' : Oem1 IME=J
` 半角/全角 Oem3 IME=ENG
[ @ Oem3 IME=J
\ ] Oem5 IME=ENG
N/A ¥ Oem5 IME=J
] [ Oem6 IME=ENG
\ ] Oem6 IME=J
/ \ OemBackslash IME=J
, , OemComma  
- - OemMinus
[ @ OemOpenBrackets IME=ENG
] [ OemOpenBrackets IME=J
. . OemPeriod  
= ^ OemPlus IME=ENG
; + OemPlus IME=J
/ / OemQuestion  
' : OemQuotes IME=ENG
= ^ OemQuotes IME=J
Page Up PgUp PageUp  
Pause Pause Pause  
Enter Enter Return  
Right  
Ctrl Ctrl RightCtrl right control
⇧Shift RightShift  
Windows Windows RWin right Windows
- - Subtract numeric keypad
Scroll Lock Scr Lk Scroll scroll lock
(Space) (Space) Space  
Alt Alt System  
F10 F10 System  
Tab Tab Tab  
Up  
volume volume VolumeDown
volume volume VolumeMute
volume volume VolumeUp
Print Scrn Prt Sc N/A print screen
N/A ¥ N/A IME=ENG
` 半角/全角 N/A IME=J
N/A ひらがな N/A hiragana
N/A 変換 N/A convert

Focus de Saisie

Le Focus de Saisie est l'endroit (le contrôle) qui recoit tout ce que saisi l'utilisateur au clavier. Le focus de saisie peut être modifié avec la touche [Tab] ou un clic souris est avec généralement un effet de couleur pour montrer le contrôle en cours. Vous pouvez déterminer quel contrôle possède actuellement le focus avec le programme d'exemple suivant.
A noter que si le focus est sur une zone de texte, l'événement TextInput n'a jamais lieu. Si the focus n'est sur aucune zone de texte, l'événement TextInput aura lieu.

Programme d'Exemple

  • Key Input Test (GRM149) - regarder en particulier les évènements GraphicsWindow.KeyUp, GraphicsWindow.KeyDown, GraphicsWindow.TextInput, et Controls.TextTyped.

Problèmes Connus

Lorsque le programme publié s'exécute dans un navigateur (en distant), les problèmes suivants apparaîtront.

  • Les focus de saisie avec les évènements GraphicsWindow.KeyDown et GraphicsWindow.KeyUp peuvent être perdus lorsqu'il y a un contrôle de zone texte en local. D'autre part le focus peut être cyclique au travers de tous les contrôles mais également la fenêtre graphique elle-même en appuyant sur la touche [Tab] en distant.
  • GraphicsWindow.LastKey devient "LeftShift" ou "RightShift" pour la touche [Maj] en local mais "Shift" en distant.
  • GraphicsWindow.LastText retourne le même nom de touche que GraphicsWindow.LastKey en distant.

Fenêtre Texte

Pour la fenêtre texte, TextWindow.Read() et TextWindow.ReadNum() sont utilisés pour la saisie au clavier.

Opérations Read et ReadNum

TextWindow.Read() permet la saisie des textes et TextWindow.ReadNum() la saisie des nombres depuis le clavier.

Opération ReadKey est Obsolète

TextWindow.ReadKey() est une ancienne opération. Mais elle fonctionne toujours pour des raisons de rétro-compatibilité.


Voir Aussi

Autres Ressources

Autres Langues