Fórum Form´s estilo Delphi #323944
21/06/2006
0
Tenho um form principal que fica no topo do desktop, com uma altura de 200. Agora preciso que meu form2 ao ser criado, fique abaixo do form principal, ou seja, que a área que ele possa utilizar inicie abaixo do form principal. De forma semelhante ao Delphi, ou seja, no delphi possuimos a barra de ferramentas o object inspector e a tela de código, o maximizarmos a tela de código, ela não sobrepõe a barra de ferramentas.
Alguém tem alguma dica?
{}´s
Jaca
Rodrigo Vaccari
Curtir tópico
+ 0Posts
21/06/2006
Adriano Santos
Vc pode fazer uma conta, exemplo:
procedure TForm1.Button1Click(Sender: TObject); begin FormDialogo.Top := (Screen.Heigth div 2) - (FormDialogo.Heigth div 2); FormDialogo.Left := (Screen.Width div 2) - (FormDialogo.Width div 2); end;
Isso centraliza o FormDialogo na tela em relação ao Screen, ou seja, ele se adapta a resolução de tela.
Gostei + 0
21/06/2006
Rodc
O exemplo abaixo eu usei no evento OnCanResize() do form2, apenas para testar.
NewHeight := Screen.Height - (Form1.Top + Form1.Height); Form2.Top := Form1.Top + Form1.Height;
Gostei + 0
21/06/2006
Rodrigo Vaccari
Dei uma aprimorada nela:
procedure TForm2.FormCreate(Sender: TObject);
begin
Form2.Height := Screen.WorkAreaHeight - (Form1.Top + Form1.Height);
Form2.Width := screen.DesktopWidth;
Form2.Left := 0;
Form2.Top := Form1.Top + Form1.Height;
end;
Gostaria de inserir essa função quando o usuário maximiza o form2, onde faço isso?
Gostei + 0
21/06/2006
Adriano Santos
No OnResize já funciona.
Gostei + 0
21/06/2006
Rodc
Eis a questão, se colocar no OnResize o Form2 ficaria sempre fixo abaixo do form1, e não é assim que funciona, por exemplo, no Delphi. O form 2 tem de estar fixo apenas quando estiver maximizado.
Tem um código que pega o evento de OnMaximize. Vou ver e depois posto aqui.
Gostei + 0
21/06/2006
Rodc
Mas vai ser algo como o código abaixo.
Na declaração:
procedure WMSize(var Message: TWMSize); message WM_SIZE;
Na implementação:
procedure TForm2.WMSize(var Message: TWMSize); message WM_SIZE; begin if (Message.Msg = SIZE_MAXIMIZED) then // Seu código de ajuste end;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)