anchor.diff:  begin
     gMain.Move(GetWindowParams);
   end;
  +
  +
  +procedure TFormMain.WMMouseWheel(var Msg: TMessage);
  +var
  +  MousePos : TPoint;
  +  KeyState : TKeyboardState;
  +begin
  +  MousePos.X := SmallInt(LoWord(Msg.LParam));
  +  MousePos.Y := SmallInt(HiWord(Msg.LParam));
  +  GetKeyboardState(KeyState);
  +
  +  if gGameApp <> nil then
  +    gGameApp.MouseWheel(KeyboardStateToShiftState(KeyState), SmallInt(HiWord(Msg.WParam)), RenderArea.ScreenToClient(MousePos).X, RenderArea.ScreenToClient(MousePos).Y);
  +end;
   {$ENDIF}
   
   
  
positive.code: 
  procedure TFormMain.FormMouseWheel(Sender: TObject; Shift: TShiftState; WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
  begin
    if gGameApp <> nil then
      gGameApp.MouseWheel(Shift, WheelDelta, RenderArea.ScreenToClient(MousePos).X, RenderArea.ScreenToClient(MousePos).Y);
  end;
  
  
  
negative.code:     procedure WMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND;
      procedure WMExitSizeMove(var Msg: TMessage) ; message WM_EXITSIZEMOVE;
      procedure WMAppCommand(var Msg: TMessage); message WM_APPCOMMAND;
      procedure WMMouseWheel(var Msg: TMessage); message WM_MOUSEWHEEL;
    protected
      procedure WndProc(var Message : TMessage); override;
      {$ENDIF}
  