Form, não mover

Delphi

24/10/2006

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

Curtidas 0

Respostas

Micheus

Micheus

24/10/2006

[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


GOSTEI 0
Alecsandro Moura

Alecsandro Moura

24/10/2006

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:


GOSTEI 0
Queiroz

Queiroz

24/10/2006

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


GOSTEI 0
POSTAR