DBGridで隣のセルに移動

解決


セル  2010-10-23 16:38:58  No: 39415  IP: 192.*.*.*

DBGridでデータを表示していて、編集をしてエンターキーを押すと次のセルに移動させようと思っております
以下例
ID|名前|年齢
10|田中|20
20|山田|22
田中のセルにカーソルがある状態でエンターを押す次のセルの20にカーソルをいかせたいのです
procedure TForm1.DBGridKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    //ここに次セルに移動の処理がちょっとわからなくてとまっております
  end;
end;

ご教授お願いします

編集 削除
Kenny  2010-10-23 18:50:49  No: 39416  IP: 192.*.*.*

とりあえず UsesにMessagesを追加し、DBGridのOnKeyDownイベントで

procedure TForm1.DBGridKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = VK_RETURN then
      SendMessage(DBGrid1.Handle, WM_KEYDOWN, 9, 0);
end;

こうすればTABキーを押したのと同じように、次のセルへ移動します。
ただ、Returnキーでセル移動すると、データの確定だけをする場合に工夫が必要ですよね。
特定の列だけに適用したいとか、編集状態を選びたいとかがあればまた質問をどうぞ。

編集 削除
セル  2010-10-25 18:49:47  No: 39417  IP: 192.*.*.*

>>Kennyさん
教えていただきありがとうございます、とりあえずこの方法でやっていこうと思います

編集 削除