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.