procedure TForm1.MouseWheelHandler(var Message: TMessage);
begin
if ActiveControl is TDBGrid then
begin
with TDBGrid(ActiveControl) do
begin
if DataSource=nil then exit;
if Message.WParam>0 then
begin
if not DataSource.DataSet.Bof then
DataSource.DataSet.Prior;
end
else
begin
if not DataSource.DataSet.Eof then
DataSource.DataSet.Next;
end;
end;
Message.Msg:=0;
end;
end;
type
Tfrmdata = class(TForm)
public
procedure MouseWheelHandler(var Message: TMessage);override;
implementation
procedure tfrmdata.MouseWheelHandler(var Message: TMessage);
begin
if message.WParam <0 then
datasource1.DataSet.Next
else
datasource1.DataSet.prior;
procedure TForm1.NewGridWnd(var Message: TMessage);
var
IsNeg : Boolean;
begin
if Message.Msg = WM_MOUSEWHEEL then
begin
IsNeg := Short(Message.WParamHi) < 0;
if IsNeg then
DBGrid1.DataSource.DataSet.MoveBy(1)
else
DBGrid1.DataSource.DataSet.MoveBy(-1)
end
else
OldGridWnd(Message);
end;
procedure TForm1.WMMOUSEWHEEL(var msg: TMessage);
var
obj:TObject;
begin
obj:=ControlAtPos(Mouse.CursorPos,True,True);
showmessage(obj.ClassName);
if obj is TDBGrid then
begin
with TDBGrid(obj) do
begin
if DataSource=nil then exit;
if msg.WParam>0 then
begin
if not DataSource.DataSet.Bof then
DataSource.DataSet.Prior;
end
else
begin
if not DataSource.DataSet.Eof then
DataSource.DataSet.Next;
end;
end;
end;
end;