Mega Code Archive

 
Categories / Delphi / ADO Database
 

How to scroll in a DBGrid with WheelMouse

Title: How to scroll in a DBGrid with WheelMouse //with delphi7 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, DBGrids, DB, DBTables; type TForm1 = class(TForm) DataSource1: TDataSource; Table1: TTable; DBGrid1: TDBGrid; procedure FormCreate(Sender: TObject); procedure DBGridMouseWheel(Sender: TObject; Shift: TShiftState; WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean); private { Private declarations } public { Public declarations } end; TWheelDBGrid = class(TDBGrid) public property OnMouseWheel; end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin TWheelDBGrid(DBGrid1).OnMouseWheel := DBGridMouseWheel; end; function GetNumScrollLines: Integer; begin SystemParametersInfo(SPI_GETWHEELSCROLLLINES, 0, @Result, 0); end; procedure TForm1.DBGridMouseWheel(Sender: TObject; Shift: TShiftState; WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean); var Direction: Shortint; begin Direction := 1; if WheelDelta = 0 then Exit else if WheelDelta 0 then Direction := -1; with TDBGrid(Sender) do begin if Assigned(DataSource) and Assigned(DataSource.DataSet) then DataSource.DataSet.MoveBy(Direction * GetNumScrollLines); Invalidate; end; end; end.