Another problem related to CMMouseWheel and the latest Lazarus from Trunk (31572)
In new version of Lazarus 31572, SystemParametersInfo (in winapi.inc it's WidgetSet.SystemParametersInfo) points to carbonwinapi.inc in wich there is no case selector for SPI_GETWHEELSCROLLLINES so ScrollLines is always returned as 0 and you got no scrolling...
In Lazarus 30406, SystemParametersInfo was pointing to intfbasewinapi.inc which actually has selector for SPI_GETWHEELSCROLLLINES...
dunna know who must fix this, but for now this is my fix:
procedure TBaseVirtualTree.CMMouseWheel(var Message: TLMMouseEvent);
...
SystemParametersInfo(SPI_GETWHEELSCROLLLINES, 0, @ScrollLines, 0);
if ScrollLines = WHEEL_PAGESCROLL then
ScrollAmount := Trunc(WheelFactor * ClientHeight)
else if ScrollLines = 0 then
ScrollAmount := round(WheelFactor * Mouse.WheelScrollLines * FDefaultNodeHeight)
else
ScrollAmount := Trunc(WheelFactor * ScrollLines * FDefaultNodeHeight);