Fórum Como Destruir um formulario executado em Show ? #419857
13/07/2012
0
Tenho o seguinte problema:
Tenha uma aplicacao rodando em ShowModal e desejaria
passar para somente Show, até ai tudo bem.
O problema começa quando quero destruir o Formulario usando esta instrução FreeAndNil(frm)
Quando usando ShowMNodal tenho o conmtrole do fluxo quando desejo fechar um modulo da aplicacao,
até ai tudo bem, mas com Show somente, não tem como eu saber quando a aplicacao encerra o modulo,
pois preciso destruir este formulario.
Consigo destruir os outros objetos, mas o formulario não vejo como.
Então, pergunto como destruir este formulario ?
Desde já meus agradecimentos a quem puder ajudar.
100+
ANT.CARLOS/SP
-------exemplo------------------------------------
If Frm_Grupos = nil Then Begin
Application.CreateForm(TDMGRU, DMGRU);
DMGRU.Cds_Grupos.open;
Application.CreateForm(TFrm_Grupos,Frm_Grupos);
Frm_Grupos.Show;
End Else Begin
Frm_Grupos.Show;
End;
--------------------------------------------------
Antonio Jesus
Curtir tópico
+ 0Posts
13/07/2012
Gustavo Bretas
procedure TfrmCadPadrao.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end;
No meu caso é viável por que eu utilizo formulário herdado, então não preciso redeclarar nos demais formulários!
Gostei + 0
13/07/2012
Eliel Martins
Não sei se entendi direito, mas você pode fazer da seguinte forma :
No evento onclose do form que você vai chamar, ele é destruido.
FreeAndNil(Form2);
Ai no caso você não precisará do ELSE, sempre que chamar será criado.
Espero ter ajudado, qualquer coisa se não forma dessa forma que gostaria de fazer me avise.
Atenciosamente,
Eliel G. Martins
Gostei + 0
13/07/2012
Antonio Jesus
Obrigado pela atenção!
Fiz destruindo o form no onClose, funcionou, mas com uma resalva, gera um Exception depois de
destruido.
Meu form é herdado de um formPai, o erro não aconte lá, pois não destru-o no form-Pai.
O erro acontece depois da destruição dos objetos no End da procedure onclose;
Postei no 4Shared as imagens de erro.
favor acessar este link e ver o erro gerado.
http://www.4shared.com/photo/220J2JkM/imagem3.html
100+
ANT.CARLOS/SP
Gostei + 0
13/07/2012
Joel Rodrigues
Gostei + 0
15/07/2012
Antonio Jesus
então fiz o teste com um form herdado usei destruir no formPai e no form sem herança usei destruir no onclose e funcionou, blz e muito obrigado pela atenção de todos.
100+
ANT.CARLOS/SP
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)