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

解決


ソロ  2003-11-06 20:54:07  No: 5608

ソロと申します。

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

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

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

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


通りすがり  2003-11-06 21:02:36  No: 5609

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


masayan  2003-11-06 21:34:45  No: 5610

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


ソロ  2003-11-06 21:57:50  No: 5611

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

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

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

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

なるほど。

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


HOota  2003-11-06 22:30:39  No: 5612

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


ソロ  2003-11-06 23:22:58  No: 5613

> 皆様

できました!

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

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

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


通りすがり  2003-11-07 01:41:55  No: 5614

手元にこんなのがありました。
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

> 通りすがり様

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


ソロ  2003-11-07 02:17:33  No: 5616

> 通りすがり様

できましたー!

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


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

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






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