Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Maneju

Arrastas form que não possui bordas

Recommended Posts

Declare como deseja, segue exemplo:

public
{ Public declarations }
xxx, yyy: integer;
Captura : Boolean;

---------------------------------------------------------

Escolha o componente e em:

 

// MouseDown
procedure ...
begin
xxx:= x;
yyy:= y;
Captura := true
end;

 

//MouseMove

procedure ...

begin
if Captura = True then
begin
Screen.ActiveForm.Left := Screen.ActiveForm.Left + X - xxx;
Screen.ActiveForm.Top := Screen.ActiveForm.Top + Y - yyy;
end;
end;

 

//MouseUp

procedure ...

begin
Captura := False;
end;

 

-------------------------------------------
OU

private
{ Private declarations }
procedure WMNChitTest(var M: TWMNchitTest); message WM_NCHITTEST;

--------
// Mover Form clicando em qualquer área
procedure TForm1.WMNChitTest(var M: TWMNchitTest);
begin
inherited;
if M.result = htclient then
M.result := htCaption;
end;

Compartilhar este post


Link para o post
Compartilhar em outros sites


unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs;

type
  TForm1 = class(TForm)
  private
    { Private declarations }
  public
    { Public declarations }
         procedure WMNChitTest(var M: TWMNchitTest);  message WM_NCHITTEST;
  end;

var
  Form1: TForm1;

implementation


{$R *.dfm}

procedure TForm1.WMNChitTest(var M: TWMNchitTest);
begin
  inherited;
  if M.result = htclient then
  M.result := htCaption;
end;
end.

Acabei de testar pelo XE5 e rola de boa!... será que mudou algo em relação a versão?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.