Permet de mettre le focus sur l'Edit suivant ou l'Edit précédent en fonction de la touche pressée, en ignorant les autres composants (TButton, etc...).
- VK_DOWN, VK_NEXT, VK_RETURN : focus sur l'Edit suivant dans l'ordre de tabulation;
- VK_UP, VK_PRIOR : focus sur l'Edit précédent dans l'ordre de tabulation.
J'ai préféré placer l'appel à la procedure dans l'évènement OnKeyDown des TEdit, afin de pouvoir utiliser les flèches d'avancement.
Mais si l'on se contente de la touche entrée, on peut le placer dans OnKeyPress, ainsi :
if Key = #13 then SetFocusNextEdit;
Un code très court, très simple, mais très utile, répondant à une question récente posée sur ce forum.
Je le mets ici à la disposition du plus grand nombre.
Précisions :
Les TEdits doivent être reliés à l'évènement OnKeyDown du TEdit sur lequel est placé l'évènement (ici Edit1). Le plus simple est d'utiliser l'inspecteur d'objets. Pour les débutants : sélection des Edits à l'aide de la touche majuscule, et clic sur l'évènement OnKeyDown.
Bien sûr, bien que les composants autres que les TEdit soient ignorés, il est préférable de mettre la propriété TabOrder des TEdits dans une progression cohérente, afin que le déplacement du focus semble logique.
Le mieux étant, pour se simplifier la vie, de les créer à la suite, même si l'on peut à tout moment, sans problème, intercaler la création d'un autre composant.
Mes procedures utilisent l'unité "Message.pas".
On peut bien sûr adapter ce code à d'autre composants que les TEdit, vous l'aurez noté...