ScrollHelper.pas
unit ScrollHelper;
interface
Uses
Classes,
Windows,
DBGrids,
Messages,
Controls;
Type
TScrollHelper = Class(TObject)
Private
Protected
FGrid : TDBGrid;
FOldProc : TWndMethod;
Procedure GridProc(Var Msg : TMessage);
Public
Constructor Create(Grid : TDBGrid);
Destructor Destroy(); Override;
Published
End; {TScrollHelper}
implementation
Const
WM_MOUSEWHEELUP = 120;
WM_MOUSEWHEELDOWN = 65416;
{ TScrollHelper }
constructor TScrollHelper.Create(Grid : TDBGrid);
begin
Inherited Create();
FGrid := Grid;
FOldProc := FGrid.WindowProc;
FGrid.WindowProc := GridProc;
end;
destructor TScrollHelper.Destroy;
begin
FGrid.WindowProc := FOldProc;
Inherited;
end;
procedure TScrollHelper.GridProc(var Msg: TMessage);
begin
If (Msg.Msg = WM_MOUSEWHEEL) Then
Begin
Case Msg.WParamHi Of
WM_MOUSEWHEELUP: FGrid.DataSource.DataSet.Prior();
WM_MOUSEWHEELDOWN: FGrid.DataSource.DataSet.Next();
End; {Case}
End Else Begin
FOldProc(Msg);
End;
end;
end.