Ir para conteúdo
Fórum Script Brasil
  • 0

Redimencionamento


Cleverson Honório Gouvêa

Pergunta

Quero saber se existe uma forma de impedir que o Usuário Redmencione o Formulário!!!

Meu amigo usa o Windows 2003 e utilizando a mesma resolução que eu em um monitor de "15 meu programa ficou fora dos padrões !!!

Com barras de rolagem!!

Alguém sabe me explicar porquê?

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

você diz mover os componentes?

se for, tem sim, vai no object inspector, e na propriedade Anchors de cada componente você coloca tudo em False, ou seja, pode acontecer o que for com o formulário eles nunca vão sair da posição que você os deixou...

Link para o comentário
Compartilhar em outros sites

  • 0

Não Cara!!! Quero saber se posso impedor os Forms de serem movidos!!!

As janelas entende, quando você clica no titulo do Formulário e arrasta ele em tempo de execução!!!

Tem como impedir isso!?

E o que essa última configuração que você me passou faz?

Link para o comentário
Compartilhar em outros sites

  • 0

opa

tem como sim ai vai

em private

procedure wmsyscommand(var message: tmessage); message wm_syscommand;

depois de implementation

procedure tnomedoform.wmsyscommand(var message: tmessage);

begin

case (message.wparam and $fff0) of

SC_MOVE, SC_SIZE:

message.result := 0;

else

inherited;

end;

end;

Anchors impede que um componente seja redimensionado ou saia da posicao, dependendo da configuracao que voce deixar, por padrão, ele não anda pra esquerda e não sobe pra cima, exemplo...

cria um form que possa ser redimensionavel, coloca um botao...

redimensiona o form da direita pra esquerda, se vai ver que o botao não anda da posicao dele pra esquerda, porque o anchors Left está true, agora se voce por Left false, ai ele anda, é tipo pra segurar uma posicao independente de como estará o form.

Link para o comentário
Compartilhar em outros sites

  • 0

Não Cara!!! Quero saber se posso impedor os Forms de serem movidos!!!

As janelas entende, quando você clica no titulo do Formulário e arrasta ele em tempo de execução!!!

Tem como impedir isso!?

Num outro forum, aprendi que há uma forma bem simples de evitar que uma janela seja movida (apenas): basta definir a proporiedade Align do form para alCustom. Combinada com a a sugestão do Chrc de utilizar a propriedade BorderStyle com bsSingle - resolvem o problema de forma rápida.

E apenas para dar mais uma opção (que eu havia sugerido naquele forum), similar a do Churc, dá para interceptar a mensagem WM_WINDOWPOSCHANGING. Ela ocorre antes que a movimentação ou resize sejam aplicados a janela:

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

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,9k
×
×
  • Criar Novo...