Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   UniGui und TShape (https://www.delphipraxis.net/212978-unigui-und-tshape.html)

Dumpfbacke 2. Mai 2023 13:46

UniGui und TShape
 
Hallo Delphianer,
ich fange nun mal mit UniGui an und bin ganz am Anfang. Ich möchte hierzu eine Tiff Datei in ein Image laden und dann einfach einen roten gestrichelten Kasten (transparen nur den Rahmen) mit der Maus markieren / zeichnen. Also Maus auf den Punkt oben links setzten Linken Button gedrückt halten. Nach unten Rechts gehen uns los lassen. Nichts besonderes nur ein ganz normales Viereck. Zu TImage gibt es ja ein TUniImage. Ein OnMouseMove gibt es ja leider nicht aber mir würde es schon reichen wenn nach den loslassen des Buttons der Rahmen komplett auf einmal gezeichnet werden würde (Besser als nichts). Jetzt kommt aber mein Problem denn es gibt hier kein TShape. Hat jemand von Euch hier einen Tip wie ich es hinbekommen könnte ?

Danke Tanja.

himitsu 2. Mai 2023 14:17

AW: UniGui und TShape
 
Den Rahmen auf das Bitmap in dem Image drauf malen

oder noch ein Image/PaintBox über das andere Image und darin in das Bitmap deinen Rahmen ... den Rest transparent lassen.



Du könntest dich aber auch mit JavaScript direkt in die HTML-Komponente dieses TImages hängen, dort die Maus behandeln und den Rahmen auf's Canvas malen, oder mit einer anderen Komponente drüberlegen,
und wenn fertig deinem Programm die Koordinaten schicken.

Dumpfbacke 2. Mai 2023 14:28

AW: UniGui und TShape
 
Ich möchte auf das Image (Bild) drauf malen. Der Rahmen soll transparent sein. Am Ende möchte ich erreichen das ich die Punkte von dem Rahmen habe und diesen Bereich, der der User mit dem Rahmen markiert hat aus dem Image dann kopieren kann. also "nur" ein Transparentes Viereck auf dem Bild.

Dumpfbacke 2. Mai 2023 14:36

AW: UniGui und TShape
 
So mache ich es normal unter Delphi beimTImage

Delphi-Quellcode:

Shape ist ein TShape;

OnMouseDown

Shape.Left := X;
Shape.Top := Y;
Shape.Width := 0;
Shape.Height := 0;

OnMouseMove

Shape.Width := X - Shape.Left;
Shape.Height := Y - Shape.Top;

OnMouseUP
Shape.Width := X - Shape.Left;
Shape.Height := Y - Shape.Top;
Repaint;


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:33 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