domingo, 27 de julho de 2014

Anexar dois forms

É comum encontrarmos aplicativos que possuem dois ou mais formulários que se mantém o tempo todo "colados" um ao outro. É o caso, por exemplo, do conhecido Winamp. Como fazer isto em aplicações Delphi? Vamos aos passos: 1. Crie um novo projeto com um form (Form1). 2. Adicione mais um form (Form2). 3. Declare os métodos abaixo na seção private do Form1: private procedure AjustarForm2; procedure WMMove(var Msg: TMessage); message WM_MOVE; 4. Abaixo da palavra implementation escreva: procedure TForm1.AjustarForm2; begin if Form2 <> nil then begin Form2.Width := Width; Form2.Left := Left; Form2.Top := Top + Height; end; end; procedure TForm1.WMMove(var Msg: TMessage); begin AjustarForm2; end; 5. Escreva o evento OnShow do Form1 como abaixo: procedure TForm1.FormShow(Sender: TObject); begin Form2.Show; end; 6. Escreve o evento OnHide do Form1 como abaixo: procedure TForm1.FormHide(Sender: TObject); begin Form2.Hide; end; 7. Escreve o evento OnReSize do Form1 como abaixo: procedure TForm1.FormResize(Sender: TObject); begin AjustarForm2; end; Pronto! Execute e experimente arrastar ou redimensionar o Form1 para ver o efeito.

Postagens Relacionadas:

  • Impedir que o form seja fechado com Alt+F4Este é um problema fácil de resolver. Vejamos porque. Toda vez que um form recebe um comando para ser fechado, tal como Form1.Close ou mesmo uma mensagem WM_CLOSE, o evento OnCloseQuery é disparado. Este evento passa um par… Read More
  • Anexar dois formsÉ comum encontrarmos aplicativos que possuem dois ou mais formulários que se mantém o tempo todo "colados" um ao outro. É o caso, por exemplo, do conhecido Winamp. Como fazer isto em aplicações Delphi? Vamos aos passos: 1. … Read More
  • Impedir que o form seja arrastado para fora das margens da tela- Na seção Private declare a procedure abaixo: private procedure WMMove(var Msg: TWMMove); message WM_MOVE; - Abaixo da palavra implementation escreva a procedure abaixo: procedure TForm1.WMMove(var Msg: TWMMove); beg… Read More
  • Criar form sem título que possa ser arrastadoProblema: Fazer um relógio num form é fácil. Porém gostaria que esse form não possuísse a barra de título, mas que o usuário ainda pudesse arrastá-lo com o mouse. Isto é possível no Delphi? Solução: Sim, é possível e é fá… Read More
  • Forçar foco em janelaAs funções abaixo forçam para que a janela informada fique em primeiro plano. Primeira alternativa function ForceForegroundWindow(hwnd: THandle): Boolean; const SPI_GETFOREGROUNDLOCKTIMEOUT = $2000; SPI_SETFOREGROUNDL… Read More
← Postagem mais recente Postagem mais antiga → Página inicial

0 comentários:

Postar um comentário