DBGridのスクロールバーについて


もりっち  2006-08-10 20:51:36  No: 22874

DBGridに数十件以上データを表示した時に、
スクロールバーをマウスでスクロールしていくと、
一番上、真中、一番下の三段階でしかスクロールできず、
困っています。

解決方法をご存知の方いましたら、宜しく御願いいたします。


HOta  2006-08-10 22:05:36  No: 22875

Delphiのバージョンは何でしょうか?
D7では修正されていますが、いつから変わったかは知りません。実際のデーターベースには、最初・途中・最後の3通りしかないのを反映させています。バージョンアップが簡単でしょう。


GTBass  2006-08-10 22:26:25  No: 22876

いつも皆様方の知恵に助けて頂いており、感謝している次第です。
私でもお役に立てそうなので、書かせて頂きます。

DataSetの全てのレコードを読み込むまでは3段階ですが、全てのレコードを読み込むと表のサイズに適応したスクロールバーになります。ですから、必要な時は全てのレコードを読み込んでから表示させています。

ちなみにD5+IBを使用しています。


もりっち  2006-08-11 23:49:45  No: 22877

早速のアドバイス、ありがとうございます。

>HOtaさん
Delphi のバージョンは 7 です。
Delphi/400 を利用し、AS/400 の DB を参照しています。
参照は、SQL もしくは、Table(DBTables)で行なっています。

この状況で、DBGrid のスクロールバーが三段階でしか動きません。

>GTBassさん
DataSet の全てのレコードを読み込むというのは、
DB の全てのレコードを表示するということでしょうか?

DBGrid のプロパティで、
スクロールバーに関係するような項目はありますでしょうか?
ご助力よろしくお願いいたします。


HOta  2006-08-12 01:10:56  No: 22878

Openした後、一度Lastで最後まで読み込むと、レコード数が解り、お望みの動作になると思います。


もりっち  2006-08-12 02:58:29  No: 22879

ご指示どおり、
Open したあと、Last と記述してコンパイルしてみましたが、
変化なしです。

お手数おかけしますが、ご教授お願いいたします。


HOta  2006-08-13 03:16:24  No: 22880

Delphi7+InterBaseで試しましたが、3段階ではありませんでした。
ひょっとすると、Delphi/400の問題かもしれません。


てんてん  2006-08-17 00:32:19  No: 22881

もりっちさん
こんにちは

Delphi7.1Ent + DBISAMでも同じような動きですね。
アプリ起動後、DBGridスクロールバーの下方向ボタンをクリックすると、表示されている最後のレコードに移り、その後、下方向ボタンをクリックするごとに、1レコードずつ移動するようになります。
また、この状態から上方向ボタンをクリックすると、表示されている最初のレコードに移動してから、1レコードずつ移動するようになります。

変ですよね?

そこで、解決策になるか分かりませんが、TDBNavigatorで代用するのは如何でしょうか?


  2006-08-17 17:20:34  No: 22882

若干処理遅くなりますがTClientDaSetとかはどうでしょう?


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

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






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