11 Vote

Delphi/Lazarus: Touche d’Entrée dans Edit

Question de Invité | 01/01/2024 à 12:30

Je souhaite exécuter automatiquement une action spécifique, chaque fois que la touche Entrée (Enter) est enfoncée depuis un champ TEdit.

Par exemple, il peut s'agir du lancement automatique de une recherche après la saisie d'un mot-clé, du passage au champ de saisie suivant ou de l'appui automatique sur le bouton à côté du champ.

Comment puis-je m’en rendre compte?

RépondrePositifNégatifDateVoix
2Meilleure Réponse2 Voix

Vous pouvez simplement réagir à la touche Entrée dans l'événement OnKeyPress du champ Edit.

La clé de retour a le code clé #13, donc l'instruction if pourrait ressembler à ceci:

procedure TForm1.Edit1KeyPress(Sender: TObject; 
  var Key: Char);
begin
  if Key = #13 then begin
    Button1.Click;  // par exemple: simuler un clic sur un bouton
    Edit2.SetFocus; // ou: passer à edit suivante
    // ... ou quoi que ce soit d'autre
    Key := #0;
  end;
end; 

Dans cet exemple, nous appelons simplement la procédure Button1Click, de sorte que le code qu'elle contient soit exécuté après avoir appuyé sur la touche Entrée, et nous passons au champ Edit suivant. Bien entendu, vous pouvez également exécuter ou écrire tout autre code ou fonction à ce stade.

Il est important de remettre ensuite Key sur #0. Avec cela, vous empêchez l'Edit de traiter davantage l'entrée.
01/01/2024 à 19:07

RépondrePositif Négatif
11 Vote

Si un bouton doit être cliqué en appuyant sur la touche Entrée, vous pouvez également définir la propriété "Default" du bouton sur "true". Avec cela, le bouton sera cliqué automatiquement lorsque vous appuierez sur Entrée.

Il en va de même pour la touche ESC. Dans ce cas, vous devez définir la propriété "Cancel" sur "true".
02/01/2024 à 20:30

RépondrePositif Négatif
00 Voix

Cette solution est meilleure pour les petits programmes ou des fenêtres de dialogue.

La réponse ci-dessus convient mieux aux programmes plus longs.
03/01/2024 à 00:21

Positif Négatif
Répondre
Répondre

Sujets Connexes

MySQL: Sauts de Ligne dans MySQL

Conseil | 0 Commentaires

VirtualBox: Changer la Date et l'Heure

Tutoriel | 10 Commentaires

Avis Important

Veuillez noter: Les contributions publiées sur askingbox.com sont des contributions d’utilisateurs et ne doivent pas remplacer les conseils d’un professionnel. Ils ne sont pas vérifiés par des indépendants et ne reflètent pas nécessairement l’opinion de askingbox.com. Apprendre encore plus.

Participer

Posez votre propre question ou écrivez votre propre article sur askingbox.com. Voici comment.