Thema: Delphi FMX TPaintBox

Einzelnen Beitrag anzeigen

ScharfeMietze

Registriert seit: 5. Mär 2014
165 Beiträge
 
Delphi 10.2 Tokyo Architect
 
#1

FMX TPaintBox

  Alt 9. Feb 2023, 14:09
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
  Mit Zitat antworten Zitat