Ir ao topo

Tecnobyte

Logomarca da Tecnobyte
Contato por WhatsApp

WhatsApp

(69) 3421-6756

Contato por Telefone

(69) 3421-6756

(69) 3421-6757

Enviar mensagem

Enviar

mensagem

Contato por Facebook

Facebook

Atendimento de segunda a sexta, das 08h00 às 19h00 (horário de Brasília).

Delphi - Formulários

Como anexar dois formulários (forms)?

Banner
É 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.

Observações

Neste exemplo, se o usuário mexer no Form2 o Form1 não se ajustará automaticamente. Existem no mínimo duas alternativas para resolver este caso: deixar o Form2 sem borda ou codificar os eventos do Form2 para ajustar o Form1.

O conteúdo desta página pode ajudar alguém? Compartilhe!