Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-11-2010
Alejo15x Alejo15x is offline
Miembro
 
Registrado: ene 2010
Posts: 55
Poder: 15
Alejo15x Va por buen camino
Mover el Cursor hasta llegar a X,Y

Hola!

Estoy jugando con la API de windows, para una aplicación en creación.
Necesito mover el cursor (no finjir el click y ya), no. Moverlo hasta llegar a unas pocisiones TPoint.X y TPoint.Y

Esto es algo que cree, pero no funcióna es más, me paraliza la aplicación.
Ya que no estoy muy claro del algoritmo correcto para está acción.

Código Delphi [-]
procedure MoveMouse(X,Y:integer);
var FMousePos:TPoint;
begin
  GetCursorPos(FMousePos);
  repeat
    SetCursorPos( FMousePos.X + 1 , FMousePos.Y + 1);
  until (FMousePos.X = X) and (FMousePos.Y = Y);
end;

Como podría yo mover el mouse, hasta que llege ... ?.
Responder Con Cita
  #2  
Antiguo 06-11-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Alejo15x.

Por lo que veo en tu código, queres un desplazamiento en diagonal, ya que: SetCursorPos( FMousePos.X + 1 , FMousePos.Y + 1); ,
supongo, intenta incrementar la posición X e Y en la misma cantidad.

Una forma de hacerlo podría ser:
Código Delphi [-]
procedure MoveMouse(IniX, IniY, FinX, FinY, Espera: Integer);
begin
  SetCursorPos(IniX, IniY);   // posición inicial
  repeat
    if IniX < FinX then          
      Inc(IniX)               // X hacia abajo
    else                        
      Dec(IniX);              // X hacia arriba
    if IniY < FinY then       
      Inc(iniY)               // Y hacia abajo
    else                       
      Dec(IniY);              // Y hacia arriba 
    SetCursorPos(IniX, IniY); // nueva posición
    Sleep(Espera);            // 0 en parámetro Espera (sin demora)
  until (Mouse.CursorPos.X = FinX) or (Mouse.CursorPos.Y = FinY);
end;

Ejemplo de llamada:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  MoveMouse(0, 0, Screen.Width-10, Screen.Height-10, 3);
  MoveMouse(Screen.Width-10, Screen.Height-10, 0, 0, 6);
end;

Saludos.

Última edición por ecfisa fecha: 06-11-2010 a las 09:06:37.
Responder Con Cita
  #3  
Antiguo 06-11-2010
Alejo15x Alejo15x is offline
Miembro
 
Registrado: ene 2010
Posts: 55
Poder: 15
Alejo15x Va por buen camino
Muchas Gracias !.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Recorrer la grilla sin mover el cursor Gustavo Gowdak OOP 3 25-05-2006 23:33:22
Mover el cursor de DBGrid.... armadillo OOP 1 05-04-2006 13:42:48
¿Hasta dónde va a llegar Google? Neftali [Germán.Estévez] Noticias 4 16-12-2005 17:46:24
A ver si puedes llegar a casa, asi !!!! DarkSide Humor 1 09-07-2004 02:59:57
Impedir mover el form y redimensionar al mover barra tareas jealousy API de Windows 0 15-06-2004 12:58:05


La franja horaria es GMT +2. Ahora son las 15:20:56.


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
Copyright 1996-2007 Club Delphi