DBGridでホイールスクロールさせたくない


かばとっと  2010-10-27 21:13:19  No: 39442  IP: 192.*.*.*

よろしくお願いします。

Delphi2007で、DBGridにてマウスホイールによるスクロールをさせたときに、
全体はスクロールさせてフォーカスは動かないようにする
(Excelと同じような挙動)にはどうすればよいのでしょうか?
現状、行スクロールしてしまいます。

編集 削除
igy  2010-10-27 21:27:12  No: 39443  IP: 192.*.*.*

MLには、似たような質問があるようです。(現時点では返信はないみたいですが。)

TDBGridでスクロール時にカレントレコードを移動させない方法
http://www.freeml.com/delphi-users/1450/latest

編集 削除
KHE00221  2010-10-28 00:07:50  No: 39444  IP: 192.*.*.*

ここで移動させてるんじゃないか?

function TCustomDBGrid.DoMouseWheelDown(Shift: TShiftState; MousePos: TPoint): Boolean;
begin
  Result := False;
  if Assigned(OnMouseWheelDown) then
    OnMouseWheelDown(Self, Shift, MousePos, Result);
  if (not Result) and (FDataLink.Active) then
  begin
    FDataLink.MoveBy(1);
    Result := True;
  end;
end;

function TCustomDBGrid.DoMouseWheelUp(Shift: TShiftState; MousePos: TPoint): Boolean;
begin
  Result := False;
  if Assigned(OnMouseWheelUp) then
    OnMouseWheelUp(Self, Shift, MousePos, Result);
  if (not Result) and (FDataLink.Active) then
  begin
    FDataLink.MoveBy(-1);
    Result := True;
  end;
end;

Result を設定すれば移動しなそうだが

編集 削除