Delphi开发之:在DBGrid中用Mouse滚动键滚动记录

原创 2006年06月24日 09:42:00

首先在Unit的 private中写一过程OnMouseWheel。如下:
private
    { Private declarations }
        procedure OnMouseWheel(Var Msg :TMsg;var Handled:Boolean);

 

接着,实现OnMouseWheell过程的代码如下:

Procedure TDeptfrm.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;

以上代码需要更改DBGrid1为你所命名的DBGrid的Name

最后,在FormCreate上来调用以上方法

procedure TDeptfrm.FormCreate(Sender: TObject);
begin
  Application.OnMessage:=OnMouseWheel;
end;

 

完成以上操作,再运运行你的程序,看看结果对不对?

我用消息来处理 Dbgrid 鼠标中轮滚动消息的总结

以前看到别人做过这样一个功能:1。用 DbGrid 来显示数据,数据很多,当我滚动鼠标中轮时,数据不是向下滚动,而是水平方向上滚动,当时感到很奇怪,这是怎么实现的呢?2。还有就是Dbgrid 不支持滚...
  • qi_jianzhou
  • qi_jianzhou
  • 2006年04月13日 17:09
  • 1471

Delphi中的DBGrid如何实现使用鼠标滚轮上下滚动

首先,往窗体上加入一个ApplicationEvents组件,此组件位于additional选项卡内。 然后重写appliEvents组件的OnMessage方法: procedure TFo...
  • li272355201
  • li272355201
  • 2013年09月29日 17:21
  • 1434

如何在DBGrid中能支持多项记录的选择

这份文档来自国外,粗略看了一下,很有用,推荐给大家学习使用。 【Question】: How to do multi-selecting records in TDBGrid?     When ...
  • my98800
  • my98800
  • 2016年08月11日 10:13
  • 267

delphi中实现dbgrid数据的显示随edit文本框的内容而选中

procedure TForm1.Edit1Change(Sender: TObject); begin ClientDataSet1.Locate('班级编号',trim(edit1.Text)...
  • yongyuanbutao123
  • yongyuanbutao123
  • 2013年01月29日 09:45
  • 251

[愿创]让DBGrid支持鼠标滚轮浏览数据,及去除垂直滚动条!

      DBGrid一直都不支持鼠标中键滚动,有时候想要去除水平滚动条,让我们自己动手制作一个自定义的DbGrid组件吧!      代码如下:unit AddMsgDBGrid;interfac...
  • gencheng
  • gencheng
  • 2007年04月07日 20:19
  • 2662

delphi中的DBGRid鼠标滚动事件

Procedure OnMouseWheel(Var Msg :TMsg;var Handled:Boolean);begin  if Msg.message = WM_MouseWheel then...
  • LoveJava007
  • LoveJava007
  • 2010年01月22日 17:09
  • 299

在DBGrid中可选中行而又可进入编辑状态

如何在DBGrid中选中行,而又让它可以进入编辑状态?   也许你会问我这有什么用?呵呵,做数据库应用的兄弟们会深有感触,当用DBGrid显示的字段过多时,用户不得不拉动最下面的滚动条,去看最右边的...
  • sforiz
  • sforiz
  • 2011年12月22日 10:27
  • 1733

Magic Mouse鼠标滚动速度调整

系统偏好设置->辅助功能->左侧的鼠标与控制面板->鼠标选项->滚动速度
  • perdisk
  • perdisk
  • 2013年08月15日 10:40
  • 715

delphi 发送消息控制滚动条

1、Perform 函数     DBGrid1.Perform(WM_VSCROLL,SB_PAGEDOWN,0);  //控制滚动条,向后翻页     DBGrid1.Perform(WM_V...
  • Trassion
  • Trassion
  • 2013年06月26日 13:19
  • 4883

delphi7 dbgrid中加入COMBOBOX

在DBGrid 网 格 中 实 现 下 拉 列 表, 设 置 好DBGrid 中 该 字 段 的PickList  字 符 串 列 表、 初 始 的 序 号 值DropDownRows 即 可。 以...
  • azhqiang
  • azhqiang
  • 2014年04月15日 09:28
  • 638
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Delphi开发之:在DBGrid中用Mouse滚动键滚动记录
举报原因:
原因补充:

(最多只允许输入30个字)