Range checking turned off perhaps?

----- Original Message ----- From: "Wayne Roser" <[EMAIL PROTECTED]>
To: "NZ Borland Developers Group - Delphi List" <[email protected]>
Sent: Tuesday, May 30, 2006 2:47 PM
Subject: [DUG] MouseWheel and DBGrid in D6


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

_______________________________________________
Delphi mailing list
[email protected]
http://ns3.123.co.nz/mailman/listinfo/delphi

_______________________________________________
Delphi mailing list
[email protected]
http://ns3.123.co.nz/mailman/listinfo/delphi

Reply via email to