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

解決


deldel  2006-03-22 16:44:27  No: 20649  IP: 192.*.*.*

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

編集 削除
igy  2006-03-22 16:52:54  No: 20650  IP: 192.*.*.*

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

編集 削除
deldel  2006-03-22 17:03:49  No: 20651  IP: 192.*.*.*

ありがとうございました。ばっちりでした。
しかし、何故動作するのかよくわからないでいます^^;
(リンク先のコードは以下です)
  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を使用していて初めて出くわしたので、驚いています。

編集 削除