如何实现DBgrid 记录随鼠标滚轮

tlianxiang 2008-05-09 05:09:54
如何实现:当DBgrid 获得焦点时,滚动鼠标的轮子,dBgrid 中的记录定位也上下滚动?
...全文
64 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
tlianxiang 2008-05-10
  • 打赏
  • 举报
回复
上面的方法试过了,使用中发现:
如果Form1中的DBGrid控件只有一个的时候blazingfire(...该充电了...)的方法可行,
可是如果Form1中包含有多个可响应MouseWheel的控件时会有这些控件都同时随MouseWheel
动作的现象。
在继续搜贴中觉得下面的链接可能有更好的解决方法:
http://topic.csdn.net/u/20080401/03/02ea848e-f979-4289-a09b-c5a327f2e7b8.html
blazingfire 2008-05-09
  • 打赏
  • 举报
回复
在DBGrid所在的窗体中处理WM_MOUSEWHEEL消息

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, FileDB, Grids, DBGrids;

type
TForm1 = class(TForm)
Button1: TButton;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
FileDataBase1: TFileDataBase;
FileTable1: TFileTable;
private
{ Private declarations }
procedure WMMouseWheel(var Msg: TWMMouseWheel); message WM_MOUSEWHEEL;

public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.WMMouseWheel(var Msg: TWMMouseWheel);
begin
if DBGrid1.DataSource.DataSet.Active then
begin
if Msg.WheelDelta < 0 then
DBGrid1.DataSource.DataSet.Next
else
DBGrid1.DataSource.DataSet.Prior;
end;
end;

end.
kaikai_kk 2008-05-09
  • 打赏
  • 举报
回复
这里有一个:

http://topic.csdn.net/u/20080401/03/02ea848e-f979-4289-a09b-c5a327f2e7b8.html
kaikai_kk 2008-05-09
  • 打赏
  • 举报
回复
这个问题,上厚度去找答案还快些,一大把

不过建议用第三个控件DBGridEh!!

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧