StringGridの横スクロールについて

解決


kazu  2011-01-14 03:09:03  No: 39821

過去の質問にもあったのですが解決となっていなかったため質問させていただきます。
StringGridで列数が多く横スクロールバーが表示された状態でoptionsのgoRowSelectをTRUEにするとセルを選択した際に横スクロールバーが端に戻ってしまうのを抑制するにはどうしたらよいでしょうか。
開発環境はdelphi2007です。
よろしくお願いいたします。


KHE00221  2011-01-14 15:00:33  No: 39822

procedure TCustomGrid.MoveCurrent(ACol, ARow: Longint; MoveAnchor,
のなかの
    if Show then ClampInView(FCurrent);
をけせば・・・


kazu  2011-01-14 18:31:59  No: 39823

KHE00221様
ご回答ありがとうございます。
初心者にもう少しお付き合いいただければと思います。
procedure TCustomGrid.MoveCurrentはどこに記載されているのでしょう。
ソースを探してみましたが見当たりません。
どうぞよろしくお願いいたします。


KHE00221  2011-01-16 11:28:59  No: 39824

2007もってないから知らんけど

TCustomGrid が見つからない? MoveCurrent が見つからない?


Mr.XRAY  2011-01-16 11:40:48  No: 39825

こんにちは,Mr.XRAYです.

>TCustomGrid が見つからない? MoveCurrent が見つからない?

今,見ましたが,少なくとも私の Delphi 2007-R2 Pro にはあります.


Mr.XRAY  2011-01-16 11:58:55  No: 39826

もしかしたら,Delphiのバージョンで何かが変わった場合も考えて,
念のため,Delphi 5, 6, 7, 2007, 2010, XE で調べましたが,全てあります.
検索は,

TCustomGrid.MoveCurrent

という文字列でやってみました.


Mr.XRAY  2011-01-16 21:20:48  No: 39827

Mr.XRAYです.夜中に帰宅して,かなり酔っていましたね.
肝心なことを訊くのを忘れていました.

>ソースを探してみましたが見当たりません。

どんな風に,どんな手段.方法で探したのでしょうか?


kazu  2011-01-17 06:22:29  No: 39828

KHE00221様
Mr.XRAY様
ご回答ありがとうございます。
クラスの検索からTCustomGrid.MoveCurrentを見つけることは出来たのですが、
if Show then ClampInView(FCurrent);を消してみても
横スクロールバーが戻ってしまう状態です。
何かご存知でしたらもう少しお付き合いいただければと思います。


KHE00221  2011-01-17 09:16:54  No: 39829

元のソースを変更しても、それはコンパイルされないので
自分のプロジェクトがあるところに Grids.pas をコピーして
それを編集して下さい


kazu  2011-01-17 18:53:10  No: 39830

KHE00221様
ありがとうございました。
無事思った通りの動作になりました。
解決とさせていただきます。


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

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






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