Fixando o Cursor do Mouse

 

Nesta dica veremos como fixar o cursor do mouse em uma região específica da tela. É possível delimitar qualquer região visível, porém para facilitar limitaremos apenas uma região dentro do formulário. Não adianta saber fixar o cursor se não tivermos como liberá-lo, por isso veremos também como fazê-lo.

Inicie uma nova aplicação e insira no formulário três componentes: um shape e dois botões. O layout do formulário deve ficar igual ao da figura abaixo:

 

Configure algumas propriedades básicas destes componentes conforme o esquema abaixo:

Shape1: Height = 100, Left = 95, Top = 77 e Width = 300;

Button1: Caption = Prende Mouse, Left = 192, Top = 88 e Width = 83;

Button2: Caption = Libera Mouse, Left = 192, Top = 136 e Width = 83;

 

O código da sua unit deverá ser o seguinte:

 

unit untPrendeMouse;

 

interface

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls, ExtCtrls;

 

type

    TForm1 = class(TForm)

        Button1: TButton;

        Button2: TButton;

        Shape1: TShape;

        procedure Button1Click(Sender: TObject);

        procedure Button2Click(Sender: TObject);

    private

        { Private declarations }

    public

        { Public declarations }

    end;

 

var

    Form1: TForm1;

 

implementation

 

{$R *.dfm}

 

procedure PrendeMouse (intEsq, intCima, intDir, IntBaixo : integer);

var

  Area: TRect;

begin

  Area.Left := intEsq;

  Area.Top := intCima;

  Area.Right := intDir;

  Area.Bottom := IntBaixo;

  ClipCursor( @Area );

end;

 

procedure LiberaMouse;

begin

  ClipCursor(nil);

end;

 

procedure TForm1.Button1Click(Sender: TObject);

begin

  PrendeMouse (Form1.Left + 100, Form1.Top + 100, Form1.Left + 400,

    Form1.Top + 200);

end;

 

procedure TForm1.Button2Click(Sender: TObject);

begin

  LiberaMouse;

end;

 

end.

por Edison Costa

webmaster@clubedelphi.com.br