![]() |
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 |
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? |
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:
bisher sieht mein code so aus
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; wo is der fehler? |
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.
|
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:
thx
procedure Tfrm_screen.Image321MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer; Layer: TCustomLayer); |
Re: on click TImage32 die position vom curser auf dem bild
Hallo,
Delphi-Quellcode:
Das ist eine Funktion.
Image321.ControlToBitMap(pos);
du musst also schreiben:
Delphi-Quellcode:
Was aber auch nur Sinn macht, wenn zuvor in pos die Position des mauszeigers relativ zum Control, also zum TImage32 ist.
pos := Image321.ControlToBitMap(pos);
Mouse.CursorPos gibt die z.B. auch im OnClick die aktuelle Mausposition:
Delphi-Quellcode:
Diese Methode funktioniert auch, wenn dein Bild z.B. in der Komponente zentriert ist.
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; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:07 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