Bonjour à tout le monde des développeurs,
Comment parcourir un dbgrid en utilisant la touche Entrée au même effet que la touche gauche (se déplacer d'une colonne à une autre en utilisant la touche Entrée)?
Merci d'avance.
Bonjour à tout le monde des développeurs,
Comment parcourir un dbgrid en utilisant la touche Entrée au même effet que la touche gauche (se déplacer d'une colonne à une autre en utilisant la touche Entrée)?
Merci d'avance.
Réussir c'est faire le bon choix.
Voici ma supper fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Fonction ChercherSolution(User_id:login in www.developper.com):Vrai;
Utilise l'evenement onkeydown:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if key = 13 then if DBGrid1.SelectedIndex < DBGrid1.Columns.Count - 1 then DBGrid1.SelectedIndex := DBGrid1.SelectedIndex + 1; end;
Salut
J’ai utilisé ce code mais ça n'a pas marché.
*Salut
J’ai utilisé ce code mais ça n'a pas marché.
C'est parce qu'il ne faut pas tester"13" mais "CHR(13)" ou un truc dans le genre. Sinon tu peux tester "VK_RETURN"
Si le SelectedIndex ne fonctionne, dans ce cas essaie
Code : Sélectionner tout - Visualiser dans une fenêtre à part Key := VK_LEFT;
Mes tutoriels
Avant de poster :
- F1
- FAQ
- Tutoriels
- Guide du développeur Delphi devant un problème
#13
Bon courage ou Bonne Chance (selon le contexte)
Mon blog sur WordPress
Salut
Malheureusement ça n'a pas marché ni
Ni
Code : Sélectionner tout - Visualiser dans une fenêtre à part Key := VK_LEFT;
Mais dans quel cas les flèches du clavier et la touche entrée ne fonctionnent pas dans un dbgrid et comment faire pour forcer leur
Code : Sélectionner tout - Visualiser dans une fenêtre à part #13
Voilà un code qui fonctionne parfaitement chez moi :
J'ai fait simple : bien sûr dans un code 'bien fini' il faut tester la position en fonction du nombre de colonnes (comme l'a signalé popo)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 procedure TFRM_Form.DBGridKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (Key = Key_Enter) or ( key = Key_return) then DBGrid.SelectedIndex = DBGrid.SelectedIndex + 1; end;
Je n'ai pas essayé VK_RETURN en Delphi, mais en LAZARUS et là ça fonctionne aussi.
Ce qui se conçoit bien s'énonce clairement
Et les mots pour le dire viennent aisément (Boileau)
salut
JP.NUAGE
Ok merci pour le code
Mais pourquoi les flèches du clavier ne fonctionne pas dans mon dbgrid.
Salut;
tout simplement parce que le code fournie teste la touche entrée, si tu veux qu'il gère la touche gauche faut l'inclure dans le code, je crois que c'est VK_LEFT à toi de vérifier ça.
Autre chose, tu dois contrôler les limites pour ne pas avoir erreur si tu es sur la 1ère colonne et tu essais de te déplacer encore à gauche.
Bon courage ou Bonne Chance (selon le contexte)
Mon blog sur WordPress
salut
réponse pour JP.NUAGE
malheureusement ça ne marche pas.
merci
Salut
Réponse pour
Just-Soft
Oui mais normalement les flèches fonctionne par défaut, même si je fais le test
Vk_up, ou vk_down ça ne marche pas, c'est vraiment fatiguant ce problème de flèches et touches.
Bon courage ou Bonne Chance (selon le contexte)
Mon blog sur WordPress
Salut
Mais j'ai rien ajouté dans l'événement du Dbgrid? Aussi dans l'événement keydown, et keypress et keyup de la form principale est vide.
Vraiment ce problème m'empêche d'avancer sur mon projet.
Bon courage ou Bonne Chance (selon le contexte)
Mon blog sur WordPress
Salut
Oui j'ai utilisé plusieurs codes sans résultats, et après j'ais tout effacé de l'événement du dbgrid aussi les flèches du claviers ne fonctionnent pas avec le dbgrid.
salut
@+ Phil
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 procedure TMaForm.MaGrilleKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); var Grid : TDbGrid; begin if (key=VK_RETURN) or (key=VK_TAB) Then begin Grid := (Sender as TDbGrid); if Grid.FieldCount > Succ(Grid.SelectedIndex) then begin Keybd_event(VK_RIGHT,0,0,0); key:=0; end else begin Grid.SelectedIndex := 0; Keybd_event(VK_DOWN,0,0,0); key:=0; end; end; inherited; end;
Blaise PascalNous souhaitons la vérité et nous trouvons qu'incertitude. [...]
Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
PS : n'oubliez pas le tag
salut
anapurna
j'ai bien copier le code merci
anapurna
Salut
J’ai essayé ton code mais mon dbgrid refuse de bouger, c'est comme j'ai ajouter une pierre et pas un composant, mais SVP peut tu m'expliquer un peu ton code.
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