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


Queiroz

Queiroz

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.:
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;
...
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


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

30/10/2006

Queiroz

Grato pelo Help. Ajudou muito.
Abraços,
Pedro.


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar