Ich habe in FMX
In einer TMultiview ein TLayout darin ein TImage mit einer TPaintbox
In diesem Minigame soll ein Kreis gezeichnet werden.
Nur erscheint der Kreis nicht dort wo der Nuzer den Bildschim berührt..
Hier der Code
Delphi-Quellcode:
procedure THeaderFooterForm.pb1Paint(Sender: TObject; Canvas: TCanvas);
begin
Canvas.DrawBitmap(img1.Bitmap, RectF(0, 0, img1.Bitmap.Width, img1.Bitmap.Height),
RectF(0, 0, pb1.Width, pb1.Height), 1);
end;
procedure THeaderFooterForm.pb1MouseDown(Sender: TObject; Button: TMouseButton;Shift: TShiftState; X, Y: Single);
var
Canvas: TCanvas;
BitmapPos: TPointF;
begin
Canvas := img1.Bitmap.Canvas;
Canvas.BeginScene;
try
Canvas.Stroke.Color := TAlphaColorRec.Green;
Canvas.Fill.Color := TAlphaColorRec.Green;
Canvas.DrawEllipse(RectF(X - 5, Y - 5, X + 5, Y + 5), 1);
finally
Canvas.EndScene;
end;
pb1.Repaint;
end;
Diverse Versuche mit
img1.ScreenToLocal(TRectF.Create(x,y);
haben nicht den erwünschten Erfolg gebracht...
Was muss ich tun damit der Kreis genau unter dem Finger des Users erscheint?
Mit Dank vorab
Mietze