Mouse - movendo componentes

Top  Previous  Next

var

  PosMouseX, PosMouseY   : Integer;

  BtPress                : Boolean;

 

procedure MouseDown

begin

  BtPress   := True;

  PosMouseX := X;

  PosMouseY := Y;

end;

 

procedure MouseMove

begin

  if not BtPress then Exit;

  // Move o label sendo arrastado para a posicao nova (relativa ao mouse)

  TLabel(Sender).Top := TLabel(Sender).Top  + Y - PosMouseY;

  TLabel(Sender).Left:= TLabel(Sender).Left + X - PosMouseX;

end;

 

procedure MouseUp

begin

  BtPress := False;

end;

 

 

---------------------------- MANEIRA MAIS SIMPLES --------------------------

 

// para mover um panel:

 

procedure TForm1.Panel1MouseDown

begin

 ReleaseCapture;

 TWinControl(Sender).perform(WM_SYSCOMMAND, $F0120);

end;