...
TForm1 = class(TForm)
DBGrid1: TDBGrid;
procedure FormCreate(Sender: TObject);
...
procedure FormDestroy(Sender: TObject);
private
procedure MouseWheel(var Msg: tagMSG; var Handled: Boolean);
procedure DataSetAfterScroll(DataSet: TDataSet);
public
end;
var
Form1: TForm1;
implementation
uses Unit2;
procedure TForm1.MouseWheel(var Msg: tagMSG; var Handled: Boolean);
var
i: SmallInt;
begin
if Msg.message = WM_MOUSEWHEEL then
begin
Msg.message := WM_KEYDOWN;
Msg.lParam := 0;
i := HiWord(Msg.wParam);
if i > 0 then
Msg.wParam := VK_UP
else
Msg.wParam := VK_DOWN;
Handled := false
end
end;
procedure TForm1.DataSetAfterScroll(DataSet: TDataSet);
begin
Caption:= DBGrid1.SelectedField.AsString
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnMessage:= MouseWheel;
DataModule1.DataSet.AfterScroll:= DataSetAfterScroll
end;
...
procedure TForm1.FormDestroy(Sender: TObject);
begin
Application.OnMessage:= nil;
DataModule1.DataSet.AfterScroll:= nil
end;
end.