TDBCtrlGrid内のTDBEditでEnter移動するには?

解決


ふろんてぃあ  2010-12-24 01:57:16  No: 39761

いつもお世話になっております。
Delphi2010+WindowsXPで開発をしています。

TDBCtrlGrid内に2つのTDBEditを貼り付けておいて、
Enterキーが押下されたら次のTABOrderのコントロールに移動するように
制御したいのですが、どうにも上手く出来ません。

現象としては、TDBCtrlGridにフォーカスが来てTDBEditにフォーカスを
渡すまでは良いのですが、値を入力しEnterを押下するとフォーカスは
無くなるのですが、次のTDBEditに移動しません。

TDBEditのOnKeyPressイベントでKey = #13の時、
SendMessage(Form.Handle, VM_NEXTDLGCTL,0,0)で
移動させようとしているのですが、考え方が間違っているのでしょうか?
(Form.HandleをForm.DBCtrlGrid.Handleに変えてみても駄目でした。)

動かない原因や実現方法が分かる方が居ましたらご教授頂けると助かります。
宜しくお願い致します。


Kenny  2010-12-24 03:09:40  No: 39762

D7+WinXPではこれで出来ますね。

procedure TForm1.DBCtrlGrid1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key=VK_RETURN then begin
    key:=0;
    DBCtrlGrid1.DoKey(gkNextTab)
  end;
end;


ふろんてぃあ  2010-12-24 18:04:31  No: 39763

Kenny様

提示して頂いたソースでバッチリ出来ました。
数時間悩んでいたので、本当に助かりました。
ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加