DBGridでスクロールしたときに

解決


ソロ  2003-11-06 20:54:07  No: 5608  IP: [192.*.*.*]

ソロと申します。

DBGridでスクロールしたときに、フォーカスが当たっている行の値を
テキストボックスなどに表示したいと思っています。

DBGridのイベントは片っ端からやってみましたが、
該当するようなものが見つかりませんでした。

何か他に方法等があるようでしたら、
教えていただけませんでしょうか。

よろしくお願いいたします。

編集    削除
通りすがり  2003-11-06 21:02:36  No: 5609  IP: [192.*.*.*]

>DBGridでスクロールしたときに、フォーカスが当たっている行の値を
行の値とは?

編集    削除
masayan  2003-11-06 21:34:45  No: 5610  IP: [192.*.*.*]

普通にTDBGridと同じデータセットのフィールドをデータベース対応コンポーネント(TDBEditなど)で表示してみてください。

編集    削除
ソロ  2003-11-06 21:57:50  No: 5611  IP: [192.*.*.*]

皆様ありがとうございます。

> > DBGridでスクロールしたときに、フォーカスが当たっている行の値を
> 行の値とは?

グリッドに表示されているデータの一行の値です。
もちろん実際はフィールドも指定します。

> 普通にTDBGridと同じデータセットのフィールドを
> データベース対応コンポーネント(TDBEditなど)で表示してみてください。

なるほど。

やってみた上で、また報告させていただきます。

編集    削除
HOota  2003-11-06 22:30:39  No: 5612  IP: [192.*.*.*]

Edit1.Text := DbGrid1.DataSorce.DataSet.Fields[0].asString;
などと、Fieldを指定すれば値がとれます。
Edit1.Text :=  Query1.Fields[0].AsString;
も同じですね。

編集    削除
ソロ  2003-11-06 23:22:58  No: 5613  IP: [192.*.*.*]

> 皆様

できました!

ありがとうございました。

ただ、Gridのスクロールには対応しても、マウススクロールには
対応できないようです。

やはりマウススクロールまでは対応できないんでしょうか。。

編集    削除
通りすがり  2003-11-07 01:41:55  No: 5614  IP: [192.*.*.*]

手元にこんなのがありました。
TApplicationEventsのOnMessageで
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
  var Handled: Boolean);
begin
  with Msg do begin
    case Message of
      WM_MOUSEWHEEL:begin
        Message := WM_KEYDOWN;
        lParam := 0;
        if SmallInt(HiWord(wParam))>0
          then wParam := VK_UP
          else wParam := VK_DOWN;
        Handled := False;
      end;
    end;
  end;
end;
どこかに掲載されていたものだと思いますが、忘れました。

編集    削除
ソロ  2003-11-07 02:04:24  No: 5615  IP: [192.*.*.*]

> 通りすがり様

ありがとうございます。
早速試してみます。

編集    削除
ソロ  2003-11-07 02:17:33  No: 5616  IP: [192.*.*.*]

> 通りすがり様

できましたー!

ちょっと感動しました。
ありがとうございました。

編集    削除