Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Limitar movimiento del raton (https://www.clubdelphi.com/foros/showthread.php?t=12904)

JoseQ 30-07-2004 11:27:06

Limitar movimiento del raton
 
Me gustaria saber como hacer para que mi raton no salga de una zona determinada, un Timage x ejemplo, alguien sabe como se podria hacer?, gracias

DarkByte 30-07-2004 11:40:40

Sencillo, coges el ratón y lo metes en una cajita pequeña... si el ratón puede salir del TImage, pues usas una cajita aún menor ;)


:p :p

Neftali [Germán.Estévez] 30-07-2004 12:07:39

Cita:

Empezado por JoseQ
Me gustaria saber como hacer para que mi raton no salga de una zona determinada, un Timage x ejemplo, alguien sabe como se podria hacer?,

Debes utilizar la API ClipCursor, que te permite encerrar el puntero del ratón en un área determinada. Sólo ten en cuenta que debes programar un sistema seguro para desbloquearlo; Me explico si bloqueas el ratón a un TImage por ejemplo, deberás poder desbloquerlo con el teclado, ya que no podrás salir del TImage con el ratón para cerrar el programa, cerrar la ventana o pulsar un botón.
Puedes hacer la prueba, coloca un form con un TImage; Y programa lo siguiente en los eventos Activate y Close del form:

Código Delphi [-]
procedure TForm1.FormActivate(Sender: TObject);
var
   IRect : TRect ;
   p : TPoint ;
begin
   // Calcular los bordes del control image
   IRect := Image1.ClientRect ;
   with IRect do begin
      // convertimos las coordenadas del control en las de pantalla
      p := ClientToScreen(Point(Left,Top)) ;
      Left := p.x ;
      Top  := p.y ;
      p := ClientToScreen(Point(Right,Bottom)) ;
      Right  := p.x ;
      Bottom := p.y ;
   end ;
   // llamada a la API con el rectangulo
   ClipCursor(@IRect) ;
end;
 
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  // Al cerrar éste form liberamos el cursor
  ClipCursor(nil) ;
end;


La franja horaria es GMT +2. Ahora son las 06:12:32.

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