Movendo form clicando na área
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.
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
Curtidas 0
Respostas
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
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
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.
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