Пример включает также обработку для всей формы, включая поля и т.д.
Часть, относящаяся к DBGrid обрабатывается в секции ELSE.
Приведенный код не полностью копирует поведение в DBGrid, с последней
колонки фокус переходит на первую без перехода на следующую запись.
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
{ Это обработчик события OnKeyPress для ФОРМЫ! }
{ Требуется так же установить св-во KeyPreview в True }
begin
if Key = #13 then { клавиша }
if not (ActiveControl is TDBGrid) then begin { если не в TDBGrid }
Key := #0; { убрать }
Perform(WM_NEXTDLGCTL, 0, 0); { перейти дальше }
end
else if (ActiveControl is TDBGrid) then { если в TDBGrid }
with TDBGrid(ActiveControl) do
if selectedindex < (fieldcount -1) then { следующее поле }
selectedindex := selectedindex +1
else
selectedindex := 0;
end;