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