Como Limitar a Região de Movimentação do Mouse no Delphi

No Delphi, é possível restringir o movimento do mouse para uma área específica dentro do formulário. Para isso, utilizamos a função ClipCursor, que define uma região de movimentação limitada.

Este tutorial explica como aplicar essa restrição e restaurar a movimentação normal do cursor.

Passo a Passo

1. Adicione a Biblioteca Necessária

No início do seu código, inclua a cláusula Windows na seção uses:

uses
  Windows, Forms, Controls, Dialogs;

2. Crie um Botão no Formulário

Adicione um botão ao seu formulário e implemente o evento OnClick com o seguinte código:

procedure TForm1.Button1Click(Sender: TObject);
var
  R: TRect;
begin
  { Obtém o retângulo da área cliente do formulário }
  R := GetClientRect;

  { Converte as coordenadas do formulário para coordenadas da tela }
  R.TopLeft := ClientToScreen(R.TopLeft);
  R.BottomRight := ClientToScreen(R.BottomRight);

  { Limita a movimentação do cursor à área do formulário }
  ClipCursor(@R);

  { Exibe uma mensagem explicativa }
  ShowMessage('Tente mover o mouse para fora da área cliente do formulário.');

  { Libera a movimentação do cursor após fechar a mensagem }
  ClipCursor(nil);
end;

Explicação do Código

  • GetClientRect captura as dimensões da área cliente do formulário.
  • ClientToScreen converte as coordenadas para valores da tela.
  • ClipCursor(@R) limita o movimento do mouse à área definida.
  • ShowMessage exibe um aviso ao usuário.
  • ClipCursor(nil) libera a movimentação após a confirmação da mensagem.

Considerações

Uso prático: Esse método pode ser útil para restringir interações em certas áreas de uma aplicação.
Restaurando o controle: Se necessário, chame ClipCursor(nil) para liberar o mouse manualmente.

Conclusão

Com poucas linhas de código, conseguimos controlar a movimentação do cursor dentro de uma aplicação Delphi. Esse recurso pode ser útil em sistemas que exigem restrição temporária do cursor para melhorar a experiência do usuário.

Posts Similares