Movendo form clicando na área

Delphi

28/07/2010

Olá,

Uso o seguinte código para mover o form clicando em qualquer área.

procedure WMNCHitTest(var M: TWMNCHitTest); message wm_NCHitTest;
procedure TfPrincipal.WMNCHitTest(var M: TWMNCHitTest);
begin
inherited;
if M.Result = htClient then
M.Result := htCaption;
end;

Contudo este método desativa inúmeros recursos, tais como hint, popup menu, etc; por se tratarem de objetos de detecção do mouse.

Gostaria de saber como fazer para mover meu form clicando em qualquer lugar do mesmo sem afetar outras funcionalidades.

Obrigado.
Jonny

Jonny

Curtidas 0

Respostas

Eriley Barbosa

Eriley Barbosa

28/07/2010

Fiz o teste com a procedure abaixo e funcionou hint dos botões e pop-up menu ligado ao form pela propriedade PopUpMenu:   type
  TForm1 = class(TForm)
    private
    { Private declarations }
      procedure WMNCHitTest(var Msg: TMessage);
      message WM_NCHitTest;

  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
{$R *.dfm}

procedure TForm1.WMNCHitTest(var Msg: TMessage);
begin
  if GetAsyncKeyState(VK_LBUTTON) < 0 then
    Msg.Result := HTCAPTION
  else
    Msg.Result := HTCLIENT;
end;

end.   Atenciosamente   Eriley
GOSTEI 0
Jonny

Jonny

28/07/2010

Puxa, Nem em fóruns americanos consegui resolver isso, sem falar nos inúmeros fóruns do brasil.
Já tinha até me conformado em deixar minha aplicação limitada.

Valeu mesmo.

ps.: vou mandar outras postagens, quem sabe obtenho mais soluções de problemas bem difíceis.
GOSTEI 0
POSTAR