GARANTIR DESCONTO

Fórum Tamanho do formulário MDI ? #353619

14/02/2008

0

Olá pessoal,

Estou com a seguinte dúvida:

Quando trabalhamos com formulários MDI, apesar de em tempo de projeto definirmos ele com 700x500, quando criamos o form ele aparece em um tamanho menor (mesmo que esteja wsMaximized) e depois maximiza. Como fazer para ele já ser criado com o mesmo tamanho que ele tem no projeto?

ps.: alguns componentes são ajustados ao form (Anchors) em tempo de projeto, como ao criar o form ele aparece menor, a posição dos componentes ´ancorados´ fica toda doida!

[]´s
AASN


Aasn

Aasn

Responder

Posts

14/02/2008

Onjahyr

Você já observou a propriedade [b:b439b5e7d7]Constraints[/b:b439b5e7d7] da Form no Object Inspector? Ele serve para definir o tamanho máximo e mínimo de uma Form, se tentar maximizar a janela ele só vai até o tamanho informado para o Máximo, o mesmo para o mínimo ao restaurar ou redimencionar...

Blz.


Responder

Gostei + 0

14/02/2008

Aasn

Olá Colega,

já observei sim, o problema é que independente do tamanho que eu defina o form MDIChild em tempo de projeto, mesmo definindo os Constraints, quando ele é criado em tempo de execução aparece menor, com um tamanho padrão das janelas MDIChild e só depois são maximizadas.

Quando isso acontece, os componentes em que eu defini os Anchors ficam em posições erradas, alguns ficam com a metade fora da tela, etc.

[]´s
AASN


Responder

Gostei + 0

14/02/2008

Onjahyr

Vamos com calma, eu tenho um projeto completo em MDI funcionando beleza. Me passe algumas coisas de como está fazendo para eu me orientar. A princípio, eu faço assim:

No frmMain (principal):
- Eu deixo a opção do ObjectInspector como Maximizado;
- No OnCreate eu coloco as propriedades Top = 0 e Left = 0;
- Não sei o motivo, mas declarei as Constraints aqui também (não sei se na época eu notei que não funcionava pelo OInspector ou eu não sabia disso;

- Também tenho uma procedure para deixar as MDIChild centralizada:

procedure TfrmMain.CentralizarView(QualObjeto: TControl; pHor, pVer: Boolean);
var
  QualParente: TControl;
begin
  QualParente:=QualObjeto.Parent;
{ Centraliza horizontalmente }
  if pHor then
    QualObjeto.Left:=(QualParente.ClientWidth-QualObjeto.Width) div 2;
{ Centraliza verticalmente }
  if pVer then
    QualObjeto.Top:=(QualParente.ClientHeight-QualObjeto.Height) div 2;
end;


Ai, ao chamar a MDIChild você faz assim:

frm_Cadastrar:=Tfrm_Cadastrar.Create(Application);
CentralizarView(frm_Cadastrar.Painel_Ativador,True,False);

Espero que venha a funcionar, mas, caso contrário, mostre alguma coisa de como tá fazendo via código. Se funcionou deixa uma aviso aqui!!!!

Blz.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar