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 ...
Partager