概述
方法一:
在窗体添加一个TApplicationEvents组件(在Additional中),然后在它的OnMessage事件中添加如下代码:
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean); begin // 当在 DBGrid1 上发生鼠标滚轮事件时 if (DBGrid1.Focused) And (Msg.message = WM_MOUSEWHEEL) then begin if Msg.wParam > 0 then // 滚轮上滚 SendMessage(DBGrid1.Handle, WM_KEYDOWN, VK_UP, 0) // 向DBGrid1发送 VK_UP按键消息 else // 下滚 SendMessage(DBGrid1.Handle, WM_KEYDOWN, VK_DOWN, 0); Handled := True; // 消息已经处理完毕 end; end;
DBGrid1表示需要响应滚轮事件的DBGrid名,这样就能顺利解决滚轮支持的问题。
方法二:
首先在窗体定义前面新写一个类,继承于DBGrids.TDBGrid,添加一个DoMouseWheel的函数,如下:
type TDBGrid=class(DBGrids.TDBGrid) public function DoMouseWheel(Shift: TShiftState; WheelDelta: Integer; MousePos: TPoint): Boolean; override; end; TFormMain = class(TForm) //....省略 end; var FormMain: TFormMain; implementation {$R *.dfm} //....其他省略 { TDBGrid } function TDBGrid.DoMouseWheel(Shift: TShiftState; WheelDelta: Integer; MousePos: TPoint): Boolean; begin if WheelDelta < 0 then DataSource.DataSet.Next; if wheelDelta > 0 then DataSource.DataSet.Prior; end; end.
如此也能解决滚轮问题,但是个人觉得还是前一种方法比较好。
转载于:https://www.cnblogs.com/tangqs/archive/2012/05/11/2496801.html
最后
以上就是现实巨人为你收集整理的DBGrid支持鼠标滚轮滚动的解决办法的全部内容,希望文章能够帮你解决DBGrid支持鼠标滚轮滚动的解决办法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复