关闭

给DBGrid添加鼠标滚动事件

标签: formsclass
392人阅读 评论(0) 收藏 举报
分类:
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 Handled: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.wParam > 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; // 截获鼠标滚动事件
end;

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:965296次
    • 积分:11707
    • 等级:
    • 排名:第1295名
    • 原创:151篇
    • 转载:510篇
    • 译文:0篇
    • 评论:47条
    文章分类
    最新评论