Salut

J'ai écrit du code pour changer la ligne sélectionnée d'une grille (DBGrid) tout en gardant le focus sur mon TEdit. VK_UP et DOWN pour se déplacer dedans...

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.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var
    SelIdx : Integer;
begin
    if DBAdvGrid1.Row <= 0 then Begin
        DBAdvGrid1.SelectRows(1,1);
 
    End;
    SelIdx := DBAdvGrid1.Row;
    if (KEY = VK_DOWN) AND (SelIdx <= (DBAdvGrid1.RowCount - 2)) then DBAdvGrid1.SelectRows(SelIdx + 1, 1)
    else if (KEY = VK_UP) AND (SelIdx >= 1) then DBAdvGrid1.SelectRows(SelIdx - 1, 1)
 
...
Ce que j'aimerai faire, c'est tout en gardant le focus sur mon TEdit, éviter que ma sélection ne disparaisse. En effet, la grille ne scroll pas lorsque la sélection quitte la zone visible de la grille.

Merci d'avance pour vitre aide.