Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Movimiento del mouse (https://www.clubdelphi.com/foros/showthread.php?t=46242)

Chris 26-07-2007 22:06:50

Movimiento del mouse
 
Hola a todos, la verdad es que tengo mucho tiempo de no visitar el club por cuestines de tiempo, pero bueno vuelvo en busca de ayuda. Alguien me podría dar una ayuda para detectar el movimiento del mouse fuera de la ventana de mi aplicación. Lo que necesito es medir en todo momento la distancia que tiene la posición actual del mouse con respecto a los bordes de mi ventana. de antemando agradezco su ayuda.

delphi.com.ar 26-07-2007 23:03:44

Lo que necesitas hacer es un hook del tipo WH_MOUSE, fíjate si esto te es de utilidad: http://www.clubdelphi.com/foros/showthread.php?t=36672

Saludos!

roman 26-07-2007 23:14:58

¿Y no bastaría con un timer?

// Saludos

egostar 26-07-2007 23:27:45

Cita:

Empezado por roman
¿Y no bastaría con un timer?

// Saludos

Perdon amigo roman, pero un timer te permite conocer la distancia del mouse de los bordes de la ventana:confused::confused:.

Cita:

Empezado por D&W
Alguien me podría dar una ayuda para detectar el movimiento del mouse fuera de la ventana de mi aplicación. Lo que necesito es medir en todo momento la distancia que tiene la posición actual del mouse con respecto a los bordes de mi ventana.

Salud OS.

Edito. pero si te permite saberlo EN TODO MOMENTO, :D:D:D

delphi.com.ar 26-07-2007 23:32:27

Cita:

Empezado por roman
¿Y no bastaría con un timer?

Si quiere una medición real, tipo Mouse Odometer, puede perderse algunos fragmentos del movimiento con un timer.


Saludos!

roman 26-07-2007 23:32:30

Sí, creo que me pasé de escueto :o. Pones, por decir algo, en el evento OnTimer:

Código Delphi [-]
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Caption := Format('(%d, %d)', [Abs(Mouse.CursorPos.X - Left), Abs(Mouse.CursorPos.Y - Top)]);
end;

No será en todo momento, pero puede acercarse bastante :)

// Saludos

roman 26-07-2007 23:35:53

¡Ah! Ni hablar. Si se trata de eso entonces sí se requiere un hook.

// Saludos

Chris 27-07-2007 16:11:53

Les agradezco la ayuda, pero creo que lo que me vendría mejor sería el hook por lo que intento hacer, disminuir o aumentar la transparencia de una ventana dependiendo de la distancia del mouse hacia esa ventana. (como lo hace la ventana que te aparece ahora en word 2007 cuando estás editando texto) :D

cHackAll 27-07-2007 22:00:12

Código Delphi [-]
procedure TForm1.Timer1Timer(Sender: TObject);
var Point, Distance: TPoint; Value: Cardinal;
begin
 GetCursorPos(Point);
 Point := ScreenToClient(Point);
 Distance := Classes.Point(0, 0);
 if Point.X > Width then
  Distance.X := Point.X - Width
 else
  if Point.X < 0 then
   Distance.X := Point.X * -1;
 if Point.Y > Height then
  Distance.Y := Point.Y - Height
 else
  if Point.Y < 0 then
   Distance.Y := Point.Y * -1;
 Value := (Distance.X + Distance.Y) div 2;
 if Value > 230 then Value := 230;
 AlphaBlendValue := 255 - Value; // AlphaBlend := True; Timer1.Interval := ?;
end;


La franja horaria es GMT +2. Ahora son las 03:38:47.

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