Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Koordinatenproblem mit TImage (https://www.delphipraxis.net/16179-koordinatenproblem-mit-timage.html)

F.W. 11. Feb 2004 23:47


Koordinatenproblem mit TImage
 
Hallo!

Im OnMouseMove des Images steht folgender Code:
Delphi-Quellcode:
var
 XPos, YPos: Integer;
  {...}
OnMousedown(...);
begin
 Xpos := X;
 YPos := Y;
end;
Jetzt möchte ich einen Kreis an die Stelle zeichnen, das geschieht allerdings durch einen Timer, dessen Interval auf 200 gesetzt ist. Damit er weiß wo die Maus gerade ist, benutzt er die X bzw. YPos:
Delphi-Quellcode:
 Feld.Canvas.Ellipse(XPos-2, YPos-2, XPos+2, YPos+2); //Feld ist der Name des Images
Aber irgendwie zeichnet er die Kreise immer zu weit rechts und zu weit unten :gruebel: . Der Abstand zwischen Mauszeiger und dem gezeichneten Kreis verkleinert sich, umso näher ich dem linken oberen Rand komme.

Jemand 'ne Idee :?:

Jörn 12. Feb 2004 00:39

Re: Koordinatenproblem mit TImage
 
Was steht denn im OnMouseDown? Wird da der Timer aktiviert? Weil ansonsten geht das bei mir

F.W. 12. Feb 2004 12:20

Re: Koordinatenproblem mit TImage
 
Der Timer ist die ganze Zeit aktiv, im MouseDown wird nur ein Boolischer Wert auf True gesetzt (im MouseUp wird er auf False gesetzt). Immer wenn dieser Wert True ist, zeichnet der Timer mit den Koordinaten, die vom OnMouseMove auf XPos bzw. YPos gesetzt wurden.

Liegt es daran, dass das Image alClient und das Formular wsMaximized ist?

F.W. 12. Feb 2004 12:36

Re: Koordinatenproblem mit TImage
 
Ich weiß jetzt woran's lag! Ich hatte vergessen, dass ich Strech auf true gestellt hatte, weil die Bilder sonst nicht den ganzen Bildschirm einnehmen.

Die Bilder sind 800x600 Pixel groß, der bildschirm aber 1024x768. Ich habe das ganze jetzt so gelöst:
Delphi-Quellcode:
 Feld.Picture.Bitmap.Canvas.Ellipse(Trunc(XPos/1.28)-2, Trunc(YPos/1.28)-2, Trunc(XPos/1.28)+2, Trunc(YPos/1.28)+2);
Sorry, da hab' ich wohl nicht richtig aufgepasst!


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:55 Uhr.

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