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 |