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

解決


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

ソロと申します。

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

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

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

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

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

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

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

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

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

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

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

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

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

なるほど。

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

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

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

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

> 皆様

できました!

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

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

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

編集 削除
通りすがり  2003-11-06 16: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-06 17:04:24  No: 5615  IP: 192.*.*.*

> 通りすがり様

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

編集 削除
ソロ  2003-11-06 17:17:33  No: 5616  IP: 192.*.*.*

> 通りすがり様

できましたー!

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

編集 削除