Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   Saber la posición del mouse al interior de un canvas.... (https://www.clubdelphi.com/foros/showthread.php?t=9005)

DarkMedel 09-04-2004 04:40:19

Saber la posición del mouse al interior de un canvas....
 
Hola a tod@s:
Estoy haciendo un componente que deciende de TImage y me gustaria agregarle un metodo donde pudiera recuperar la posicion donde esta el mouse sobre el componente. ya que quiero colocar la posicion en que se encuentra el mouse sobre el canvas. Parecido a lo que hace el Paint. Pero lo quiero hacer con el origen en la esquina inferior izquierda.. pero no encuentro como conocer la posicion del mouse... si alguien pudiese ayudar se le agradeceria muchiso...:D y los incluieria en mis oraciones :o

Nadie 09-04-2004 04:59:23

para saber la posicion del mouse seria asi

var
pos: tpoint;
begin
getcursorpos(pos);
end;

donde pos.x es el eje x y pos.y es el eje y

DarkMedel 09-04-2004 05:14:36

Lo que pasa es que ese me entraga la posicion del mouse dentro de la pantalla yo quiero obtenerlo solo para el Timage como lo hace por el metodo onmousemove(Sender: TObject; Shift: TShiftState; X, Y: Integer);

pero por forma interna... en el fondo no se... por inventar algo...

imagen.getmousepos(pos);
x:=pos.x;
y:=pos.Y;

pero las posiciones asociadas al canvas del Timage no de la posicion de la pantalla

DarkMedel 09-04-2004 05:25:35

onmousemove(Sender: TObject; Shift: TShiftState; X, Y: Integer);En el fondo como puedo conocer el contenido de las variables X e Y del objeto Timage asociado a este metodo

Nadie 09-04-2004 05:51:29

con getcursorpos como dijiste tenes la posicion del cursor en pantalla pero si le restas la posicion del formulario y la del componente tenes la posicion del mouse en relacion a la del componente, osea x es igual a pos.x-(left+componente.left) y lo mismo para el eje x, pero con onmousemove podes guardar en una variable global el valor de x e y de ese procedimiento y eso es mas sencillo, pero es mejor el otro metodo, por lo menos para mi

saludos
Ariel

roman 09-04-2004 10:26:51

Para convertir las coordenadas de pantalla a coordenadas relativas a un control (TImage en este caso), Delphi ya cuenta con un método: ClientToScreen.

// Saludos

mg1821 24-08-2015 20:29:31

Como escriben por ahí picando al componente, en este caso el image1, por ejemplo, luego al procedimiento onmousemove y ahí en los parametros ves el X e Y. conviertes con inttostr(X) para pasarlo a por ejm un label y listo.

Label1.Caption := inttostr(X);

qP:-)


La franja horaria es GMT +2. Ahora son las 08:23:03.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi