I have some controls (Align = alTop) within a TScrollBox.
On MacOS with Cocoa, the MouseUp and MouseDown events report the position without respecting the scroll state, while on Windows (win32) and Linux (gtk2), the positions are correct.
I can add a workaround:
procedure TMyTable.MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: integer);
begin
inherited MouseUp(Button, Shift, X, Y);
{$IFDEF Darwin}
if Assigned(Parent) then begin
if Parent is TScrollBox then begin
Y += TScrollBox(Parent).VertScrollBar.Position;
end;
end;
{$ENDIF Darwin}
...
But of course it would be better if controls would behave identical across widgetsets, at least in such basic things