Salut,
j'ai une liste de TEedit et je veux que lorsque l'utilisateur presse sur la barre d'espace le curseur passe à l'edit suivant...
ce que je ne trouve pas c'est comment passer à un autre edit.
merci d'avance .
Salut,
j'ai une liste de TEedit et je veux que lorsque l'utilisateur presse sur la barre d'espace le curseur passe à l'edit suivant...
ce que je ne trouve pas c'est comment passer à un autre edit.
merci d'avance .
Vive Delphi !!
Utilise la propriété TabOrder de tes TEdit.
Premier TEdit qui doit avoir le focus : TabOrder := 1;
Deuxième TEdit qui doit avoir le focus : TabOrder := 2;
...
Ensuite, chaque évenement "KeyDowm" de tes TEdit pointe sur cette procedure qui simule l'appuie sur la touche TAB quand on appuie sur la touche space :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key = VK_SPACE then begin Key := Word(#0); Keybd_event(VK_TAB,0,0,0); Keybd_event(VK_TAB,0,KEYEVENTF_KEYUP,0); end; end;
merci mais comment annuler l'espace tapé , j'ai pensé à le chercher puis le supprimer mais est ce qu'on peut annuler l'effet de la touche autre de ce qu'on a preciser ?
Vive Delphi !!
Erreur de ma part dans l'évènement en effet.
Et voilà
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if Key = Char(VK_SPACE) then begin Key := #0; Keybd_event(VK_TAB,0,0,0); Keybd_event(VK_TAB,0,KEYEVENTF_KEYUP,0); end end;
autre chose c'est que lorsque le edit contient déja un texte alors il est effacé..
càd faut completement changer le role de l'espace..
Vive Delphi !!
La prochaine fois mets un titre plus explicite que "Tab", tu auras plus de chance d'être aider.
Et n'oublies pas de cliquer sur "Résolu" en bas à gauche
Je m'excuse PyRoFlO mais avec mon ptit débit g pas encore vu votre correctif et maintenant merci pour le nouveau code qui marche parfaitement mais pouvez vouez m'expliquez ligne par ligne ce code car ds le help y'a pas Keybd_event..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Key := #0; Keybd_event(VK_TAB,0,0,0); Keybd_event(VK_TAB,0,KEYEVENTF_KEYUP,0);
PS: Pour le [Résolu] c'est apres l'explication .
merci encore
Vive Delphi !!
Excuses acceptées
La prochaine fois j'expliquerai de suite, ça évitera de recharger la page
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char); begin // Si la touche pressée est la barre d'espace if Key = Char(VK_SPACE) then begin // On annule l'effet de cette touche Key := #0; // On simule l'appuie sur la touche TAB Keybd_event(VK_TAB,0,0,0); // Puis on simule son relachement Keybd_event(VK_TAB,0,KEYEVENTF_KEYUP,0); end end;
merci pour votre generosité PyRoFlO car sinon avec Keybd_event(VK_SHIFT,0,0,0) seulement j'ai failli supprimer: tt mes archives !!!
Vive Delphi !!
Envoyé par jihed
Bonne continuation
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager