[D7] DbGrid Multiselect et Shift
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:
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 ... :oops: