Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi FMX erstellen einer Ellipse bei der Mouse Position (https://www.delphipraxis.net/203761-delphi-fmx-erstellen-einer-ellipse-bei-der-mouse-position.html)

e.oder 20. Mär 2020 15:16

Delphi-Version: 5

Delphi FMX erstellen einer Ellipse bei der Mouse Position
 
Hallo lieb Delphi Community,
gleich am Anfang ich bin ein ziemlicher Anfänger was Delphi angeht.

Also ich versuche per MouseClick eine Ellipse an der Maus Position zu erstellen leider noch ohne Erfolg.

Delphi-Quellcode:
unit Unit2;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
  FMX.Controls.Presentation, FMX.StdCtrls, FMX.Objects;

type
  TForm2 = class(TForm)
    Image1: TImage;
    procedure Image1Click(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X,Y: Single);
    procedure FormCreate(Sender: TObject);
    procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Single);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form2: TForm2;
  SaveState, InitialState: TCanvasSaveState;


implementation

{$R *.fmx}

procedure TForm2.FormCreate(Sender: TObject);
begin
  Image1.Bitmap := TBitmap.CreateFromFile('Kran.jpg');
  InitialState := Image1.Bitmap.Canvas.SaveState;
end;

procedure TForm2.Image1Click(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X,Y: Single);
var
  AShape: TShape;
  TColor: TAlphaColor;
  MyRect: TRectF;
  x1, y1, x2, y2: integer;
begin

end;

procedure TForm2.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Single); //funktioniert
var
  AShape: TShape;
  TColor: TAlphaColor;
  MyRect: TRect;
  x1, y1, x2, y2: integer;
  p: TPointF;
  ACursor: TCursor;
begin
  begin
    p := Screen.MousePos;
    Parent := Form2;
    x1 := 80;
    y1 := 80;
    x2 := Image1.Bitmap.Canvas.Width -80;
    y2 := Image1.Bitmap.Canvas.Height -80;
    MyRect := TRect.Create(x1, y1, x2, y2);
    Image1.Bitmap.Canvas.Stroke.Color := TAlphaColorRec.Red;
    Image1.Bitmap.Canvas.Stroke.Thickness := 8.0;
    Image1.Bitmap.Canvas.BeginScene;
    Image1.Bitmap.Canvas.DrawEllipse(MyRect, 10);
    Image1.Bitmap.Canvas.EndScene;
  end;
end;

end.

TurboMagic 20. Mär 2020 17:18

AW: Delphi FMX erstellen einer Ellipse bei der Mouse Position
 
Kannst du uns mal etwas präziser schildern was "ohne Erfolg" heißt"?
Und wo gibst du den Inhalt der Bitmap auf dem Bildschirm aus?

Grüße
TurboMagic

Harry Stahl 20. Mär 2020 19:02

AW: Delphi FMX erstellen einer Ellipse bei der Mouse Position
 
Wird die Bitmap denn auch tatsächlich in das TImage geladen?

Wenn ich bei Deinem Beispiel statt "CreateFromfile" (hier keine Pfadangabe?) eine Bitmap direkt in das Image lade und dann auf das Bild klicke, wird die Ellipse auch angezeigt....


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:30 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz