problemas com janelas mdi

Delphi

03/11/2005

Oi pessoal estou desenvolvendo um sistema em delphi 7, mysql, dbexpress blz, agora o dono do sistema exigiu que todas as telas ja entrem maximizadas, ok fiz isto, tenho um mdiform, e o restante tudo mdichild, coloquei propriedade windowstate = wsMaximized blz, porem quando ele abre duas, tres, etc janelas ao mesmo tempo e fecha uma por exemplo ai vem o problemas as janelas que restaram abertas perde o tamanho maximizado, ficam todas meio que perdidas, alguma sugestão ?

no onclose dos forms geralmente faço assim:
Action := Cafree;
FrmXX := nil;

Ja tentei release, ja procurei no forum, mas acho pq o de costume num é abrir tudo maximizado, mas sabem como é ordens são ordens.

Obrigado

César


Cesarpir

Cesarpir

Curtidas 0

Respostas

Massuda

Massuda

03/11/2005

...as janelas que restaram abertas perde o tamanho maximizado, ficam todas meio que perdidas, alguma sugestão ?
Esse é o comportamento padrão do MDI e não pode ser alterado, já que isso é implementado internamente no Windows.

Nunca tentei isso, mas acho que você pode tentar por um timer para maximizar tudo novamente ou tentar evitar o resize do form.


GOSTEI 0
Cesarpir

Cesarpir

03/11/2005

Ok Massuda muito obrigado vou tentar resolver por aki,

t+

Abraços

César


GOSTEI 0
Marlon Spiess

Marlon Spiess

03/11/2005

frmprincipal.MDIChildren.ActiveMDIChild.WindowState := wsMaximized;

Assim a janela ativa vai ficar maximizada.


GOSTEI 0
Cesarpir

Cesarpir

03/11/2005

Olá Marlon desculpe a minha ignorância mas onde aplicar este código, em qual form, seria em todos ?

frmprincipal.MDIChildren.ActiveMDIChild.WindowState := wsMaximized;

coloquei no activate, oncreate, etc do form principal e tb tentei nos mdichilds para ver né antes de falar besteira, mas ao compilar dá o seguinte erro:

´[´ expected but ´.´ found

Vi exemplos de como fechar todos os forms mdi ativo e todos eles tem um index, mas como se aplica neste código que vc citou.

Obrigado

César


GOSTEI 0
Cesarpir

Cesarpir

03/11/2005

Bom se alguém se interessar eu achei uma solução por enquanto, no evento activate de todos os forms mdi estou digitando :

WindowState := wsMaximized;

Funcionou, se é a melhor maneira ou mais fácil num sei mas por enquanto é o que tenho.

Abraços

César


GOSTEI 0
Marlon Spiess

Marlon Spiess

03/11/2005

põe o código q passei no OnClosed de todos os forms.

Desculpa, esqueci de avisar.

Valew


GOSTEI 0
POSTAR