Form - MDI com ShowModal

Top  Previous  Next

Problema

---------------

Tenho um projeto que era feito com MDI Forms mas, devido ao

problema de que com 1 clique fora do form (os fsMDIChild) os mesmos

desapareciam (sem terem sido fechados) resolvi alterar tudo para forms

normais e mostra-los com ShowModal (levei em consideracao tambem os

outros fatores apresentados no grupo para nao mais usar MDI).

 

Para a minha surpresa apos as alteracoes (todos os FormStyle =

fsNormal) quando tentava mostra-los com ShowModal recebia o seguinte

erro (EInvalidOperation): 'Não é possível tornar visível uma janela

modal.'.

 

Para tentar resolver o problema fiz testes com um novo projeto

com 2 forms, ambos fsNormal. E dava tudo certo!

So que a partir do momento que eu colocava o segundo como

MDIChild, nao dava certo e nao adiantava mais voltar para Normal!

 

Solucao

-------------

Criei entao um novo form (Normal) e salvei sua descricao como

texto com ele funcionando. Alterei para MDIChild e parou de funcionar.

Voltei a fsNormal e nao voltou a funcionar. Salvei novamente a

descricao textual e comparei com a primeira (a que funcionava) e

descobri o seguinte:

- Quando colocamos um form como MDIChild ele, automaticamente, passa a

propriedade Visible do form para True;

- Quando voltamos um form de MDIChild para Normal, a propriedade

Visible nao e alterada automaticamente, logo, continua em True;

- Para mostrar um form como Modal temos que ter Visible = False no

form!

 

Conclusao

-----------------

Esta ai a solucao desse chato problema que descobri e resolvi

partilhar para o caso de alguem vir a passar por isso tambem!

Abracos a todos.

 

Pedro Sergio Angelotti

http://www.angelotti.eti.br/

Emails: webmaster@angelotti.eti.br ou psangelotti@zaz.com.br