| on_key_up avec on_click | |
|
|
Auteur | Message |
---|
jjn4
Nombre de messages : 2690 Date d'inscription : 13/09/2009
| Sujet: on_key_up avec on_click Dim 12 Sep 2010 - 15:54 | |
| Vous prenez le petit programme de démonstration suivant : - Code:
-
label clic , key grid 1 on_click 1,clic on_key_up 1,key end clic: beep caption 0,"CLIC" return key: caption 0,"KEY" return Vous exécutez, puis vous cliquez (avec la souris) sur une cellule du grid Là, vous entendez un beep et voyez "CLIC" s'écrire dans la barre de titre très bien, jusque là, tout est normal. Ensuite, vous utilisez les touches fléchées du clavier pour modifier la cellule sélectionnée dans le grid, et là, ça fait également beep et ça écrit "CLIC" avant d'écrire "KEY" dans la barre de titre. Autrement dit, ça passe par la routine du clic de la souris avant de passer par la routine des touches du clavier. Est-ce normal ? | |
|
| |
jjn4
Nombre de messages : 2690 Date d'inscription : 13/09/2009
| Sujet: +++ Dim 12 Sep 2010 - 16:02 | |
| Et si je modifie le programme comme ceci : - Code:
-
label clic , key grid 1 on_click 1,clic on_key_up 1,key end clic: beep caption 0,"CLIC" grid_write 1,1,1,"" return key: caption 0,"KEY" if clicked(1)=1 then grid_write 1,1,1,"Cliqué" return je m'aperçois que la routine key affirme avoir détecté un clicked qui logiquement signifie un clic de souris ??? | |
|
| |
jjn4
Nombre de messages : 2690 Date d'inscription : 13/09/2009
| Sujet: +++ Dim 12 Sep 2010 - 16:09 | |
| A noter que l'inverse n'est pas vrai : Si je mets le beep dans la routine key : - Code:
-
label clic , key grid 1 on_click 1,clic on_key_up 1,key end clic: caption 0,"CLIC" return key: beep caption 0,"KEY" return Un clic de souris passe par la routine CLIC mais pas par la routine KEY. Ai-je découvert un bug ? | |
|
| |
jjn4
Nombre de messages : 2690 Date d'inscription : 13/09/2009
| Sujet: +++ Dim 12 Sep 2010 - 16:26 | |
| A noter que la confusion ne se produit qu'avec les touches fléchées, pas avec les autres touches. De plus, le phénomène se produit aussi si on remplace on_key_up par on_key_down. | |
|
| |
Invité Invité
| Sujet: Re: on_key_up avec on_click Dim 12 Sep 2010 - 17:19 | |
| Bonjour, Je pense que Jack a fait le codage pour avoir le même principe qu'un tableur. C'est d'ailleurs ce que j'ai fait avec mes éditeur à cellules. Pour ce type d'objet, je trouve cela normal. On fait le déplacement avec les flèches, ou on clique directement la cellule.
Ça ne te parait pas logique?
|
|
| |
jjn4
Nombre de messages : 2690 Date d'inscription : 13/09/2009
| Sujet: +++ Dim 12 Sep 2010 - 19:04 | |
| Eh non, ça n'est pas logique ! Qu'on puisse agir avec les touches OU la souris, ok. Mais que l'appui sur une touche déclenche le clic de souris, ça c'est bizarre ! Et c'est très ennuyeux pour programmer, comment tu fais pour que le programme sache si ta dernière action c'est d'avoir appuyé sur une touche OU cliqué avec la souris, si quand tu fais l'un, ça fait aussi l'autre ? | |
|
| |
Jean Claude
Nombre de messages : 5948 Age : 69 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: on_key_up avec on_click Dim 12 Sep 2010 - 20:55 | |
| Tu as partielement raison JJN4. Je me suis dit qu'il aurait fallu passer par key_up_code, j'ais donc fait un essai et là je corrige une partie du problème avec la touche flèche vers le bas (scancode40). Mais il reste le beep qui lui se trouve dans le label clic et là ce n'est pas "normal". J'ai mis normal entre guillemets car ce beep est systématique dès que l'on utilise les fonction key_up ou key_down. Voici l'exemple: - Code:
-
label clic , key , key2 grid 1 on_click 1,clic on_key_up 1,key end
clic: beep caption 0,"CLIC" return
key: if key_up_code=40 then gosub key2 return
key2: caption 0,"KEY" return
A+ | |
|
| |
Jean Claude
Nombre de messages : 5948 Age : 69 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: on_key_up avec on_click Dim 12 Sep 2010 - 21:03 | |
| pour mieux suivre j'ai ajouté wait et là surprise quand on utilise la touche fléche vers le bas on passe quand même par le label clic et çà c'est pas normal. - Code:
-
label clic , key , key2 grid 1 on_click 1,clic on_key_up 1,key end
clic: beep caption 0,"CLIC" wait 500 return
key: if key_up_code=40 then gosub key2 return
key2: caption 0,"KEY" wait 500 return
| |
|
| |
Invité Invité
| Sujet: Re: on_key_up avec on_click Dim 12 Sep 2010 - 23:26 | |
| Ca m'embête un petit peu. D'un côté vous avez raison sur ce qui se produit, mais de l'autre, je persiste (peut-être aide-je tord) à penser que cela est normal et logique.
J'ai d'ailleurs fait la même chose pour pouvoir faire fonctionner mon éditeur à cellules comme je l'ai dit plus haut. Pourquoi? Il s'agit d'un objet grid, et celui-ci a ses propres propriétés. C'est celle que Jack a choisi, et j'aurai fait la même chose. Dans les déplacement d'une grille avec le curseur, vous prenez en compte le contenu de la cellule, et éventuellement vous la recopiez dans un edit. Si vous vous arrêtez sur une cellule, il faudra bien un moment ou un autre prendre le contenu de la cellule, pour la traiter. Soit pour la modifier, soit pour la lire, et il n'y a que ce moyen que que cela soit automatique. Autrement c'est plus compliqué. Si le contenu de la cellule ne vous intéresse pas, vous continuez, et ainsi de suite. Lorsque vous êtes dans la cellule, le contenu est connu.
Que pensez-vous faire d'autre? Le fait d'avoir le contenu ne signifie pas en tenir compte.
Dans mon programme de cellules, j'ai une partie commune pour ces deux fonctions. D'abord, je calcul quelle cellule est cliquée, ensuite le traitement est commun. C'est exactement ce qu'a fait Jack. Enfin je crois. Je le comprend comme cela. |
|
| |
Klaus
Nombre de messages : 12274 Age : 74 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: on_key_up avec on_click Lun 13 Sep 2010 - 0:14 | |
| J'ai regardé comment cela se passe en Delphi, et j'ai constaté que Jack a rendu accessible le composant "StringGrid" de Delphi. Ce composant a exactement l'aspect de l'objet Grid de Panoramic, et il a exactement le même comportement par rapport aux évènements on_click, on_key_up et on_key_down, pour les flèches.
Les flèches sont interceptées automatiquement par le composant StringGrid de Delphi (tout comme par l'objet Grid de Panoramic). Elles provoquent un déplacement d'une ligne ou d'une colonne dans la grille ET génèrent l'évènement on_click pour avertir le programme qu'une cellule a été activée. Il est de la responsabilité du programmeur de mémoriser le dernier numéro de ligne et le dernier numéro de colonne activé, et l'évènement on_click permet alors de savoir s'il y a eu changement de ligne ou de colonne, et de déterminer les nouvelles coordonnées. Les évènements on_key_up et on_key_down sont activées également comme par n'importe quelle touche.
Ceci est donc un comportement normal, ne dépend pas de la façon dont Jack a codé cet objet et ne pourra certainement pas être changé facilement. | |
|
| |
Jean Claude
Nombre de messages : 5948 Age : 69 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: on_key_up avec on_click Lun 13 Sep 2010 - 7:44 | |
| - Citation :
- J'ai mis normal entre guillemets car ce beep est systématique dès que l'on utilise les fonction key_up ou key_down.
Ceci n'est pas vrai dans le cas ci-dessus, je retire. J'ai vérifié ce que dit Klaus en changeant la valeur de la touche key_up_code et éffectivement si cette valeur ne correspond pas a celle d'une flèche de déplacement cela fonctionne normalement. Du coup, Cosmos a raison, c'est bien ainsi. A+ | |
|
| |
JL35
Nombre de messages : 7095 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: on_key_up avec on_click Lun 13 Sep 2010 - 14:51 | |
| N'empêche, Jean-Claude, j'ai du mal à me faire à ton nouveau look ... Tu vas jouer Topaze ? | |
|
| |
Jean Claude
Nombre de messages : 5948 Age : 69 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: on_key_up avec on_click Lun 13 Sep 2010 - 18:08 | |
| - Citation :
- Topaze est une pièce de théâtre de Marcel Pagnol, représentée pour la première fois à Paris, le 9 octobre 1928, sur la scène du Théâtre des Variétés.
Topaze est au départ un maître d'école au sens civique irréprochable, licencié pour s'être montré honnête,...
C'est pas récent tout çà. c'est vrai que mon nouveau look est spécial, mais dommage pour moi c'est très ressemblant. | |
|
| |
Nardo26
Nombre de messages : 2294 Age : 55 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: on_key_up avec on_click Lun 13 Sep 2010 - 19:42 | |
| ben moi aussi, je change de look ! | |
|
| |
Jean Claude
Nombre de messages : 5948 Age : 69 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: on_key_up avec on_click Lun 13 Sep 2010 - 20:01 | |
| | |
|
| |
JL35
Nombre de messages : 7095 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: on_key_up avec on_click Lun 13 Sep 2010 - 20:33 | |
| ah Nardo, ça y est, tu as enfin fini de souffler dans ta banane ? | |
|
| |
Nardo26
Nombre de messages : 2294 Age : 55 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: on_key_up avec on_click Lun 13 Sep 2010 - 22:26 | |
| Moui... je commençais à manquer de souffle... | |
|
| |
jjn4
Nombre de messages : 2690 Date d'inscription : 13/09/2009
| Sujet: +++ Lun 13 Sep 2010 - 23:10 | |
| Eh, si c'est normal (je parle du problème que j'ai posé) alors, c'est la cata ! | |
|
| |
Contenu sponsorisé
| Sujet: Re: on_key_up avec on_click | |
| |
|
| |
| on_key_up avec on_click | |
|