Centralizar form no panel de outro form...

Delphi

04/10/2004

Olá!!!

No Formulário principal da aplicação que estou desenvolvendo a propriedade window state está como maximizar. Nesse formulário existem 3 painéis, Panel1 na parte superior com align = top, Panel2 à esquerda com align = left e Panel3 na parte central com align = client.
No Panel2 existem botões para abrir outros formulários. Eu gostaria que quando esses formulários fossem abertos, eles ficassem centralizados pelo Panel3 que está no formulário principal.
Como devo proceder??


Obrigado a todos


Maurício


Maurício Santos

Maurício Santos

Curtidas 0

Respostas

Pehdepano

Pehdepano

04/10/2004

No evento de chamada do seu Form:
[b:5768a657a6]
procedure[/b:5768a657a6] TForm1.BtAbreFormClick(Sender: TObject);
[b:5768a657a6]begin[/b:5768a657a6]
Form2:= TForm2.Create(Application);

[b:5768a657a6]with[/b:5768a657a6] Form2 [b:5768a657a6]do[/b:5768a657a6]
[b:5768a657a6]begin[/b:5768a657a6]
Form2.BorderStyle := bsDialog;
Top := Form1.Top +23 + Form1.Panel2.Top;
Left := Form1.left+ 5 +Form1.Panel2.Left;
Width := Form1.Panel2.Width;
Height := Form1.Panel2.Height;
Show;
[b:5768a657a6]end;[/b:5768a657a6]
[b:5768a657a6]end;[/b:5768a657a6]
...
Não se é a melhor solução, mas...


GOSTEI 0
Pehdepano

Pehdepano

04/10/2004

:arrow: Precisa trocar panel2 por panel3 no código acima :?


GOSTEI 0
Maurício Santos

Maurício Santos

04/10/2004

Olá!!!

Esse código não centraliza o form, mas já dá uma ajuda.


Obrigado,


Maurício


GOSTEI 0
Fsflorencio

Fsflorencio

04/10/2004

Colega,
entre na parte de Uploader master no site clubedelphi e baixe os fontes de um artigo ´Criando Instaladores em seu Sistema´.
´Sem querer querendo´, ele mostra como fazer um formulário abrir dentro de um TPanel.
Neste caso vc não precisaria de tentar alinhar, já que o form estaria dentro do tpanel.


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

04/10/2004

Colega,

Cokm o código abaixo, independente da posição do formulário principal (Form1) e de seu estado, o form2 será criado e posicionado ao centro do Panel3.

  Application.CreateForm(TForm2, Form2);
  Form2.Top   := Form1.Top + Panel3.Top  + Trunc((Panel3.Height - Form2.Height)/2);
  Form2.Left  := Form1.Left +  Panel3.Left + Trunc((Panel3.Width - Form2.Width)/2);
  Form2.ShowModal;
  Form2.Release;
  FreeAndNil(Form2);



GOSTEI 0
POSTAR