Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Problème d'évènements avec GRID Dim 12 Fév 2017 - 10:52 | |
| Selon la documentation des évènements, l'objet GRID réagit à deux évènements: CLICK et DOUBLE_CLICK. Or, il réagit également à KEY_DOWN, tout à fait normalement (et je n'ai pas encore testé les autres évènements). C'est une très bonne nouvelle. Or, il y a un conflit en utilisant conjointement les évènements CLICK et KEY_DOWN sur le même GRID. Dans ce cas, les 4 flèches sont automatiquement converties en évènements CLICK, alors que KEY_DOWN reste actif pour toutes les autres touches. Pire: les coordonnées pour MOUSE_X_LEFT_DOWN et MOUSE_Y_LEFT_DOWN sont 0 (zéro) dans ce cas, et on ne peut rien en déduire. Dans mon programme, j'ai contourné le problème en utilisant le pavé numérique en mode numérique, avec les touches 4, 8, 6 et 2 à la place des flèches. Mais c'est un pis-aller. Voici une démonstration rapide du problème. Cliquer dans une case, puis frapper des touches. La caption de la form 0 affichera les informations sur l'évènement reçu. On voit que les flèches sont convertis en "clic 0/0", alors que les autres touches affichent leur scancode. Mais si l'on met la ligne 7 en commentaire (on_click), alors on reçoit les scancode des flèches ! - Code:
-
label clic, key
full_space 0 grid 1 : full_space 1 : grid_row 1,30 : grid_column 1,50 grid_row_height 1,12 : grid_column_width 1,12 on_click 1,clic on_key_down 1,key set_focus 1 end
clic: caption 0,"clic "+str$(mouse_x_left_down(1))+","+str$(mouse_y_left_down(1)) return
key: caption 0,"key "+str$(scancode) return
Je ne sais pas si ce comportement est voulu, mais c'est gênant. | |
|