Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi on click TImage32 die position vom curser auf dem bild (https://www.delphipraxis.net/75881-click-timage32-die-position-vom-curser-auf-dem-bild.html)

gandime 26. Aug 2006 13:20


on click TImage32 die position vom curser auf dem bild
 
hi,
ich habe ein TImage32 das ein bild zeigt.
wenn ich jetzt die procedure onclick bei dem TImage32 mache möchte ich die position von meiner maus auf dem bild haben.

mfg gandime

DGL-luke 26. Aug 2006 13:33

Re: on click TImage32 die position vom curser auf dem bild
 
also wenn dein bild oben links anliegt sollte das schon hinhauen...

ansonsten gibts sicher ne methode... jaa. ControlToBitMap heisst das gute Stück.

GR32 hat eien Dokumentation, wusstest du das?

gandime 26. Aug 2006 14:37

Re: on click TImage32 die position vom curser auf dem bild
 
jo thx geht
aber iwie blicke ich bei der hilfe von gr32 nich durch

edit:
nö es geht doch ned ich bekomme immer die werte raus egal wo ich hinclicke
x:77
y:-460
edit2:
Delphi-Quellcode:
procedure Tform1.Image321Click(Sender: TObject);
var
  pos : TPoint;
begin
  Image321.ControlToBitMap(pos);
  i_click_x:=inttostr(pos.X);
  i_click_y:=inttostr(pos.y);
end;
bisher sieht mein code so aus
wo is der fehler?

Luckie 26. Aug 2006 15:05

Re: on click TImage32 die position vom curser auf dem bild
 
Im OnMouseDown eines normalen TImage werden die Koordinaten der Maus als Erignispaarmeter mitgeliefert. Ich kenne da TImage32 nicht, denke aber, dass es dort genauso ist.

gandime 26. Aug 2006 15:16

Re: on click TImage32 die position vom curser auf dem bild
 
jap damit gehts

da werden sogar sofort die cords mitgeliefert als x und y
Delphi-Quellcode:
procedure Tfrm_screen.Image321MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer; Layer: TCustomLayer);
thx

DGL-luke 26. Aug 2006 18:39

Re: on click TImage32 die position vom curser auf dem bild
 
Hallo,

Delphi-Quellcode:
Image321.ControlToBitMap(pos);
Das ist eine Funktion.

du musst also schreiben:

Delphi-Quellcode:
pos := Image321.ControlToBitMap(pos);
Was aber auch nur Sinn macht, wenn zuvor in pos die Position des mauszeigers relativ zum Control, also zum TImage32 ist.

Mouse.CursorPos gibt die z.B. auch im OnClick die aktuelle Mausposition:

Delphi-Quellcode:
procedure Form1.Image321Click(Sender: TObject);
var pos: TPoint;
begin
pos := Mouse.CursorPos; //Position auf dem Bildschirm
pos := (Sender as TImage32).ScreenToClient(pos); //Position auf dem Control
pos := (Sender as TImage32).ControlToBitmap(pos); //Position auf dem Bild
end;
Diese Methode funktioniert auch, wenn dein Bild z.B. in der Komponente zentriert ist.


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