[DUG] MouseWheel and DBGrid in D6
Wayne Roser
rr at kristin.school.nz
Tue May 30 14:47:05 NZST 2006
I found an article in Delphi.about.com and got this code to fix MouseWheel behaviour in a DBGrid:
procedure TForm1.ApplicationEvents1Message (var Msg: TMsg; 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) ; // this line gives me a problem
if i > 0 then
Msg.wParam := VK_UP
else
Msg.wParam := VK_DOWN;
Handled := False;
end;
end;
So I dropped a TApplicationEvents component on my form and used the code.
I get a problem at the line
i := HiWord(Msg.wParam) ;
Msg.wParam is -7864320 and an ERangeError pops up with message 'Range check error'
My working version has
i := Msg.wParam div abs(Msg.wParam);
in place of the offending line but I'd like to know wassup with the original code.
Wayne Roser
More information about the Delphi
mailing list