Mover botão com o Mouse em tempo real - Delphi


Nesse exemplo vamos utilizar um Botão, que será movido ao clicar e arrastar como o mouse.

1°- Adicione o componente "Button" da aba Standard.

2°- Nas declarações em "{ Public declarations }" adicione:
  MouseDownSpot : TPoint;
Capturing : bool;

3°- Clique no Button, nos eventos adicione o "Button1MouseDown", "Button1MouseMove" e "Button1MouseUp", como na imagem ao lado.

4°- No evento "Button1MouseUp" do Button adicione:

if Capturing then begin
ReleaseCapture;
Capturing := false;
Button1.Left := Button1.Left - (MouseDownSpot.x -x);
Button1.Top := Button1.Top - (MouseDownSpot.y - y);
end;
 
5°- 4°- No evento "Button1MouseMove" do Button adicione:

if Capturing then begin
Button1.Left:= Button1.Left-(MouseDownSpot.x-x);
Button1.Top:= Button1.Top - (MouseDownSpot.y-y);
end;

6°- No evento "Button1MouseDown" do Button adicione:

SetCapture(Button1.Handle);
Capturing := true;
MouseDownSpot.X := x;
MouseDownSpot.Y := Y;

Pronto! Agora você pode mover o botão dentro do form.
Poderá mover outro objeto no lugar do button.
Mover botão com o Mouse em tempo real - Delphi Mover botão com o Mouse em tempo real - Delphi Reviewed by Sóstenes Gomes on 16:39 Rating: 5

4 comentários