Ich habe abschliessend noch den Fall der Rückmahme einer Markierung aufgenommen:
Delphi-Quellcode:
procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if ( Key = VK_RETURN ) then
if ( DBGrid1.SelectedRows.CurrentRowSelected = False ) then
DBGrid1.SelectedRows.CurrentRowSelected := True
else
DBGrid1.SelectedRows.CurrentRowSelected := False
else
if ( Key = VK_DOWN ) then
begin
DBGrid1.DataSource.DataSet.MoveBy(1);
Key := 0;
end
else
if ( Key = VK_UP ) then
begin
DBGrid1.DataSource.DataSet.MoveBy(-1);
Key := 0;
end;
end;