Form, não mover
24/10/2006
0
Olá... saudações a todos.
Alguém sabe como fazer para deixar um Form fixo???
(Ou seja, o usuário não poderá mover o Form na tela)
Obrigado pela ajuda.
Queiroz
Alguém sabe como fazer para deixar um Form fixo???
(Ou seja, o usuário não poderá mover o Form na tela)
Obrigado pela ajuda.
Queiroz
Queiroz
Curtir tópico
+ 0
Responder
Posts
26/10/2006
Micheus
[b:f7fdd8c072]Queiroz[/b:f7fdd8c072], intercepte a mensagem WM_WINDOWPOSCHANGING. Ela ocorre antes que a movimentação ou resize sejam aplicados a janela.
Ex.:O que se faz é modificar o flag para conter a opção SWP_NOMOVE, impedindo que a janela seja movida de sua posição.
Msg.Result = 1 diz ao processador de mensagens do windows que não tratamos esta mensagem, de modo que ela seguirá e será processada com nossa alteração.
Se quizer que o tamanho da janela não mude, também, acrescente ´OR SWP_NOSIZE´.
[]s
Ex.:
type TForm1 = class(TForm) private procedure WMWinPosChanging(var Msg :TMessage); message WM_WINDOWPOSCHANGING; ... end; implementation {$R *.DFM} procedure TForm1.WMWinPosChanging(var Msg :TMessage); begin PWindowPos(Msg.LParam)^.flags := PWindowPos(Msg.LParam)^.flags OR SWP_NOMOVE; Msg.Result := 1; end; ...
Msg.Result = 1 diz ao processador de mensagens do windows que não tratamos esta mensagem, de modo que ela seguirá e será processada com nossa alteração.
Se quizer que o tamanho da janela não mude, também, acrescente ´OR SWP_NOSIZE´.
[]s
Responder
26/10/2006
Alecsandro Moura
Bom eu faço o seguinte, para não deixar o form ser movimentado pelo Usuario apenas mudo a propiedade Align do form para custom assim o form não podera ser movimentado pelo menos acho mais simples :wink:
Responder
Clique aqui para fazer login e interagir na Comunidade :)