Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Position in einem Image (https://www.delphipraxis.net/74127-position-einem-image.html)

renekr 28. Jul 2006 13:24


Position in einem Image
 
Hi,
ich will folgendes Realisieren.

Ich habe ein Image mit einem Shape darauf das zur Runtime positioniert wird aus Left, Top und den Heigth ,Width Werten.

Wie kann ich diese Werte zur Runtime rausbekommen wenn ihc zb. mit dem Cursor auf das Bild klicke,also Top und Left is kein Problem aber wenn ich einen 2. Punkt als Endpunkt will.?

Ist es möglich das shape zur Runtime mit der Maus zu ziehen ,also vergrößern,verkleinern usw.

Danke

atreju2oo0 28. Jul 2006 13:30

Re: Position in einem Image
 
Soweit ich weiß müssteste das selber machen!

Beim MouseDown speicherste x und y und beim Mouseup haste dann die zwei Puznkte die du brauchst und kannst dein Shape drübermalen...

Vielleicht gibt es da aber noch ne elegantere Methode...

3_of_8 28. Jul 2006 13:35

Re: Position in einem Image
 
Mit MouseUp, MouseDown und MouseMove lässt sich garantiert was machen.

Der_Unwissende 28. Jul 2006 14:02

Re: Position in einem Image
 
Hi,
wenn du die Größe änderst, dann möchtest du ja sicherlich im OnMouseMove anzeigen. Damit du nun nicht jedesmal dein Shape löscht und neu zeichnest, bietet es sich an, einfach im XOR oder notXOR Mode zu zeichnen. Hierbei wird die Farbe des Stifts mit der Farbe des Hintergrundes bitweise verglichen. 1 xor 0 und 0 xor 1 ergeben 1, der Rest 0. Interessanter ist aber der Fakt, dass (a xor b) xor b = a ist. b xor b ist immer 0. a xor 0 ist 1 wenn a = 1 und 0 wenn a = 0.
Beim Zeichnen wäre dein Hintergrund a, deine Stiftfarbe b. Zeichnest du also zweimal an der gleichen Stelle, hast du den alten Hintergrund zurück.
Das heißt, dass du dir beim Mousedown die Startkoordinaten merkst und im MouseMove die aktuellen Endkoordinaten. Wird die Maus bewegt, kannst du einfach nochmal über die alten Koordinaten zeichnen (löscht das alte Shape ohne den Hintergrund zu ändern) und dann mit den neuen Koordinaten den neuen Bereich zeichnen.

Gruß Der Unwissende

renekr 31. Jul 2006 13:02

Re: Position in einem Image
 
Hi,
also habe es soweit hinbekommen das ich es neu zeichnen kann.

das geht nur wenn ich die Maus gedrückt halte,weil beim normalen onmove will i das nciht das sich das shape ändert.

Nun würde ich gerne das shape noch von der Größe her andern ,also wen nich auf eine seite gehe das sich dan nder Cursor ändert und man es dann schieben und ändern kann nur in diese richtung also x - Y.

wie kann ich das am besten realisieren.?
danke.


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