環境:WinXP pro Delphi 2007
いつもお世話になっています。
現在、DBGridを使ったマスタメンテナンスを作成しています。
フォーカスがDBGridにあり、Tabキーが押された場合に
選択されている行を↓へ↓へ遷移させる動きを行いたいと考えています。
FormKeyDownでTabキーが押されたか判定していましたが、
DBGridをSelectedRows = Trueにしたところ、Tabキーが拾えなくなりました。
その他のキーは、以前と同じく、FormKeyDownで拾えるのですが
どうしたものかと困っています。
何かアドバイスがあれば、宜しくお願いします。
下記にFormKeyDownのコードを記載します。
※コードはSelectedRows = False時のものです。
-------------------------------------------------------------------------------
procedure TfmBASE.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Key = VK_TAB) and (Shift = []) and
(ActiveControl is TDBGrid) then
begin
if TDBGrid(ActiveControl).SelectedIndex = TDBGrid(ActiveControl).Columns.Count - 1 then
begin
if TDBGrid(ActiveControl).DataSource.DataSet.State in [dsEdit, dsInsert] then
TDBGrid(ActiveControl).DataSource.DataSet.Post;
if TDBGrid(ActiveControl).DataSource.DataSet.RecordCount =
TDBGrid(ActiveControl).DataSource.DataSet.RecNo then
begin
SelectNext(ActiveControl, True, True);
Abort;
end;
end;
end;
end;
ひどい間違い…
SelectedRows ⇒ dgRowSelect でした。
タイトルから間違ってるので紛らわしくなってしまい
申し訳ありません。
ツイート | ![]() |