Ver Mensaje Individual
  #3  
Antiguo 30-07-2004
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - Espańa
Posts: 19.441
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
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;
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita