Add mouse scroll events to DBGRID

xiaoxiao2021-03-06  61

Unit unit1;

Interface

Uses

Windows, Messages, Sysutils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, AdoDB, Grids, DBGRIDS

Type

TFORM1 = Class (TFORM)

DBGRID1: TDBGRID;

ADOTABLE1: TADOTABLE;

DataSource1: TDataSource;

Procedure formcreate (Sender: TOBJECT);

Private

Procedure onmousewheel (var Msg: TMSG; VAR HANDED: BOOLEAN);

{Private Declarations}

public

{Public declarations}

END;

VAR

FORM1: TFORM1;

IMPLEMENTATION

{$ R * .dfm}

/ / -------------------------------------------------------------------------------------------- ------------------------------

Procedure TFORM1.ONMOUSEWHEEL (VAR MSG: TMSG; VAR HANDLED: BOOLEAN);

Begin

if msg.Message = WM_MOUSEWHEEL THEN

Begin

IF msg.wpaam> 0 THEN

Begin

IF dbgrid1.focused then

SendMessage (dbgrid1.handle, WM_VScroll, SB_PAGEUP, 0);

end

Else

Begin

IF dbgrid1.focused then

SendMessage (dbgrid1.handle, wm_vscroll, sb_pagedown, 0);

END;

Handled: = True;

END;

END;

Procedure TFORM1.FormCreate (Sender: TOBJECT);

Begin

Application.onMessage: = onmousewheel; // Intercept mouse scroll event

END;

转载请注明原文地址:https://www.9cbs.com/read-90796.html

New Post(0)