TDBGridの縦ScrollBarの動作

解決


ラーカス  2007-11-21 01:16:17  No: 28588

いつもお世話になっております。

TDBGridでの縦スクロールバーについてなのですが、
DataSourceのカーソル位置がBOFであればスクロールバーの
Positionが一番上、カーソル位置がEOFであればPositionが
一番下、それ以外はスクロールバーの位置が中央部に来る
ようになっています。それを、通常のGrid同様、
カーソル位置によりcrollbarが追従するようにしたいと
思って色々試しているんですが、良い方法が見つかりません。

なお、DB環境はBDEよりADOへ移行しつつある状況で、接続先は
SQLServer2005及びAccess2000です。Filterプロパティを多用
している状態です。BDE、ADO双方での実装方法を模索しています。

恐れ入りますが宜しくご教授下さい。


Ru  2007-11-21 01:27:26  No: 28589

原因としてはこの記事が参考になるのかな?
http://leed.issp.u-tokyo.ac.jp/~takeuchi/delphi/nsearch.cgi?screen=0&select=0&key=33221

処理時間が遅くなっても良いのであればTClientDataSetが手っ取り早いかもしれません。
※データ量が多いほど時間かかります。


Ru  2007-11-21 01:28:26  No: 28590

リンク間違えました。
http://leed.issp.u-tokyo.ac.jp/~takeuchi/delphi/browse.cgi?index=033221


ラーカス  2007-11-21 02:00:55  No: 28591

早速のご回答ありがとうございます。

当方の開発環境はD5Pro(BDE)D7Pro(ADO)なので、
ADOの方は何とかなりそうかもしれませんが、BDEの方
はTClientDataSetが無いです・・・。

BDEの方は仕様ということで諦めざるを得ないのでしょうか・・・。


HOta  2007-11-21 16:34:24  No: 28592

Delphi5では仕様です。


ラーカス  2007-11-23 00:18:27  No: 28593

やはり仕様ですか・・・
別の方法を探ってみようと思います。
ありがとうございました。


HOta  2007-11-23 01:38:12  No: 28594

Delphi7では、BDEでも御希望の動作になりませんか?


Mr.XRAY  URL  2007-11-23 10:03:58  No: 28595

解決済みとのことですが,

拡張DBGrid(TFixDBGrid)  を使用しています.

http://www1.cncm.ne.jp/~ogawate/delphi/components/components.html

WindowsXP(SP2),Windows2000,Delphi7で,少なくとも ADOでmdb(JET)
への接続では使用可能です.

ただ,行全体を選択(dgRowSelect)の状態で,OnDrawXXXX内でなんらかの
処理を行うと行全体が選択されなくなることがあり,修正して利用して
います(作者のnanaさんには未連絡).

>Delphi7では、BDEでも御希望の動作になりませんか?

WindowsXP(SP2) + Delphi7 + BDE(5.XX ?)では,上下の矢印,スクロール
ボックス,マウスホイール動作で,スライダーが,相当位置に移動します.
上端,下端,中央だけということはありません.
ADO(mdb - JET)では未確認です.


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

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






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