Если вы хотите на чем-то рисовать, не надо портить стены, возьмите бумагу, холст там..
Специально придуман PaintBox именно для ваших целей.
Но для демо ровно то же самое вместо PaintBox.OnPaint сделал на Form.OnPaint
Работает одинаково, на windows и android. Уверен, что ровно так же все будет на всех остальных ОС.
type
TForm1 = class(TForm)
procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Single);
procedure FormPaint(Sender: TObject; Canvas: TCanvas; const ARect: TRectF);
procedure FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Single);
private
FCrd: TPointF;
public
end;
var
Form1: TForm1;
implementation
{$R *.fmx}
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single);
begin
FCrd := PointF(X,Y);
end;
procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Single);
begin
Invalidate;
end;
procedure TForm1.FormPaint(Sender: TObject; Canvas: TCanvas;
const ARect: TRectF);
begin
Canvas.Fill.Color := TAlphaColorRec.Wheat;
Canvas.FillRect(rectf(FCrd.X, FCrd.Y, FCrd.X+100, FCrd.Y+100), 0,0,[], 1);
end;
там в проекте еще дофига разных странных решений и ошибок. Но это уже оффтоп...