domingo, 27 de julho de 2014
Home »
» Anexar dois forms
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
0 comentários:
Postar um comentário