Lorsqu'on appuye sur entree, faire s'exécuter un bouton !!!!! [Delphi] - Programmation
Marsh Posté le 13-12-2001 à 16:04:22
Tu as une propriété "Default" sur le TButton.
Il suffit de la passer a "True" pour que ca fasse ce que tu veux!
Marsh Posté le 14-12-2001 à 13:18:52
viiz a écrit a écrit : Si tu veux en gérer plusieurs, dans l'évènement OnKeyDown du bouton tu peux mettre ca: if Key = VK_RETURN then ButtonkivabienghClock(Self); |
Merci de vos réponses ! je vais voir ça tout de suite !
Marsh Posté le 14-12-2001 à 13:24:41
ca marche impec la 1ere méthode, mais la 2eme tu pourrais mieux me l'expliquer STP ?
VK_RETURN c'est la touche 'enter' ?
Marsh Posté le 14-12-2001 à 13:40:03
oui, VK_RETURN correspond a la touche "Entrée"
Par contre, viiz, pour que le bouton recoive onKeyDown, il faut qu'il ait le focus, non ?
une facon de contourner le pb serait de mettre la propriété "KeyPreview" de la Form a "True" (tout les evenements clavier sont d'abord déclencher au niveau de la form) et de mettre le code dans le onKeyDown de la form et non du bouton.
Pour tester ca, Juju, ouvre un nouveau projet, pose tes 2 champs TEdit et 4 TButton (pas la peine de les renommer) et dans le l'évenement onClick des boutons, fait un ShowMessage indiquant sur quel bouton tu te trouves.
Par ex:
Code :
|
Puis dans le OnKeyDown de la form, gere les différentes "key" comme viiz a proposé:
Code :
|
Donc de cette facon, tu vas déclencher la fonction associée a l'évenement OnClick du bouton en fonction de la touche saisie
Dans ce cas, la touche Alt affichera "Button 1", la touche Shift affichera "Button 2", la touche Control affichera "Button 3" et la touche Entrée affichera "Button 4".
Marsh Posté le 14-12-2001 à 17:10:22
OK Merci c'est ce que je vais faire, mais j'aimerais savoir (oui je sais je suis curieux ;-) à quoi correspond 'nil' dans :
Code :
|
Marsh Posté le 14-12-2001 à 21:30:23
dans cet exemple, nil c'est l'objet qui a déclanché l'événement (le Sender que tu reçois dans la plupart des événements)
C'est pratique si par ex tu as trois boutons reliés à la même fonction, tu spécifies une valeur différente pour leur propriété "tag" et tu fais un truc du genre:
Code :
|
bon ici l'exemple est un peu bidon, mais ça m'a déjà servi (dans des Menus ou des ActionList par exemple).
[edtdd]--Message édité par antp--[/edtdd]
Marsh Posté le 15-12-2001 à 23:10:00
Reply
Marsh Posté le 13-12-2001 à 15:31:30
bonjour,
Par exemple je créé 2 zones de texte, puis en dessous un bouton 'OK'.
J'aimerais que lorsque l'utilisateur appuye sur 'Entree', il appuie en fait sur le bouton OK, sans la souris, et sans utiliser la tablation...
C'est sûrement une gestion du focus ...
Merci beaucoup
---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com