Пример, как заставить клавишу вести себя как в DBGrid

Пример включает также обработку для всей формы, включая поля и т.д. Часть, относящаяся к 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;

Используются технологии uCoz