Bonjour,

lors d'une sélection multiple avec la dbgrid, il n'y a que le CTRL+click qui fonctionne.

Mon objectif est de pouvoir sélectionner une intervalle grâce au SHIFT+CLICK (comme dans la plupart des applis...)

voici la manière dont je procède (qui ne marche pas )

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
24
25
26
27
28
29
30
31
32
33
34
35
 
 
procedure TFrm.dbgCellClick(Column: TColumn);
begin
  IndexPrecedent := EmissionEnCours;
  IndexEnCours := dbg.DataSource.DataSet.RecNo;
 
 
end;
 
procedure TFrm.dbgKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var
 i : integer;
begin
 
  If Key = VK_SHIFT Then Begin
    if not(IndexEnCours = IndexPrecedente) then begin
      If (IndexEnCours > IndexPrecedente) Then Begin
        for i := IndexPrecedente to IndexEnCours do begin
          dbg.DataSource.DataSet.GotoBookmark(Pointer(dbg.SelectedRows.items[i]));
          if not(dbg.SelectedRows.CurrentRowSelected) then dbg.SelectedRows.CurrentRowSelected := True;
        end;
      End
      Else Begin
        for i := IndexEnCours to IndexPrecedente do begin
          dbg.DataSource.DataSet.GotoBookmark(Pointer(dbg.SelectedRows.items[i]));
          if not(dbg.SelectedRows.CurrentRowSelected) then dbg.SelectedRows.CurrentRowSelected := True;
        end;
      End;
 
    end;
  End;
 
end;

Si quelqu'un à une petite idée ...