déplacement latéral (TAB) DbGrid
Bonjour à tous, :)
Voici mon soucis : j'ai créé une petite base paradox avec un DbGrid (son DataSet et sa Ttable associés), et je chercher à pouvoir me déplacer latéralement, de colonne en colonne, via la touche TAB.
Par défaut le comportement de la touche TAB dans le DbGrid consiste à passer à la ligne suivante, et non pas à la colonne suivante. J'ai donc cherché sur le net j'ai trouvé une solution (source) qui me convient à 99%, la voici (je l'ai inscrite dans procédure OnKeyPress de mon DbGrid) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
if(Key = #13)//retour de chariot a été pressé
then begin
Key := #0;//évite le beep
if(ActiveControl IS TDBGrid)
then begin
with ActiveControl AS TDBGrid do
if SelectedIndex < pred(fieldcount)
then SelectedIndex := SelectedIndex + 1 //prochaine colonne
else SelectedIndex := 0 //retour première colonne
end
else SelectNext(ActiveControl AS TWinControl, True, True)//en avant
end
else if(Key = #2)
then SelectNext(ActiveControl AS TWinControl, False, True) //en arrière |
Cela fait exactement ce que je souhaite, mais avec la touche Enter (#13). Gai comme un pinson, je me dit qu'il n'y a qu'à remplacer la correspondance ASCII #13 (retour de chariot) par #9 (touche TAB). Cela marche parfaitement, MAIS tant que je ne suis pas en "mode édition" (càd en train d'écrire dans une cellule), cas de figure dans lequel TAB passe tout de même à la ligne suivante. :cry:
Auriez-vous une idée concernant ce petit problème ?
D'avance merci pour votre aide. ;)