グリッドのスクロールについて

解決


deldel  2006-03-23 01:44:27  No: 20649

グリッドにセルが沢山有り、スクロールバーが表示されているとします。
そして、見えている一番下のセルはセルの大きさの半分ほどしか見えてないとします。
この状態で、この半分しか見えてないセルの上でマウスボタンを押すと、
勝手にどんどん下方へスクロールしていきます。
この自動的にスクロールする機能を、させないように出来ないでしょうか?


igy  2006-03-23 01:52:54  No: 20650

http://www2.big.or.jp/~osamu/Delphi/delphi-browse.cgi?index=055454


deldel  2006-03-23 02:03:49  No: 20651

ありがとうございました。ばっちりでした。
しかし、何故動作するのかよくわからないでいます^^;
(リンク先のコードは以下です)
  type
    T_StringGrid = class(TStringGrid);

  procedure TForm1.StringGrid1MouseDown(Sender: TObject;
    Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
  begin
    if T_StringGrid(Sender).FGridState = gsSelecting then
      T_StringGrid(Sender).FGridState := gsNormal;
  end;

StringGrid1 のプロパティとしては FGridState は未定義となっています。
そこで、Grids ユニットで調べると、以下のように定義されていました。
  TCustomGrid = class(TCustomControl)
  ・・・
  protected
    FGridState: TGridState;

ということは、protected で定義されているプロパティは上記の方法で
アクセスすればいいということでしょうか?
長年Delphiを使用していて初めて出くわしたので、驚いています。


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

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






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