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 Relative Mausposition in TImage (https://www.delphipraxis.net/113106-relative-mausposition-timage.html)

ToZie 2. Mai 2008 18:52


Relative Mausposition in TImage
 
Liste der Anhänge anzeigen (Anzahl: 1)
Huhu,

ich steh grad irgendwie auf dem Schlauch. Ich habe ein TImage mit irgendeinem Bild darin. Das ganze mit stretch, center und proportional auf True - schaut etwa so aus:

http://img393.imageshack.us/img393/1...fnahme1le2.jpg


Wie kann ich nun die Mauskoordinaten relativ zum dargestellen Bild ermitteln? Je nach Abmessungen des Bildes ergeben sich ja Ränder die zu berücksichtigen sind. Muss ich nachrechnen was TImage sich bei der Darstellung gedacht hat oder gehts irgendwie einfacher?

Grüße und danke schonmal

Torsten

SirThornberry 2. Mai 2008 19:03

Re: Relative Mausposition in TImage
 
Könntest du das bild bitte an den Beitrag anhängen damit es auch noch verfügbar ist wenn es bei imageshack verschwunden ist? Ansonsten würde der Beitrag wertlos werden und leute mit dem gleichen Problem müssten von vorn anfangen :)

ToZie 2. Mai 2008 21:38

Re: Relative Mausposition in TImage
 
Zitat:

Könntest du das bild bitte an den Beitrag anhängen
Klar, kann ich.


Ich habe inzwischen mal den 'nachrechnen' Ansatz probiert, der ist halt durch Rundungsfehler nicht wirklich genau - vielleicht gehts ja aber auch besser.

Delphi-Quellcode:
function MapImageCoords(Image: TImage; var x, y: integer): boolean;
var
  scale: extended;
  xr, yr: integer;
begin
  with Image do begin
    scale:=Width/Picture.Width;
    if scale>Height/Picture.Height then scale:=Height/Picture.Height;
    xr:=round(Scale*Picture.Width); yr:=round(Scale*Picture.Height);
    x:=x-round((Width-xr) div 2); y:=y-round((Height-yr) div 2);
    result:=(x>=0) and (x<=xr) and (y>=0) and (y<=yr);
  end;
end;
Torsten


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