Bei FMX musst du außerhalb des OnPaint-Events nach dem BeginScene noch die Matrix des Controls setzen:
Delphi-Quellcode:
procedure TForm1.PaintBox1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single);
begin
var c:= TPaintBox(Sender).Canvas;
if c.BeginScene then begin
c.SetMatrix(TPaintBox(Sender).AbsoluteMatrix);
PaintItem( c, 0 );
PaintItem( c, 4 );
c.EndScene;
end;
end;