Fórum Apenas 1 instancia do MDIChild #403919

28/06/2011

0

Bom, ao fechar um MDIChild utilizo o seguinte codigo : 
  Action := caFree;  TForm(Self) := nil;

Quando vou abrir , faço o seguinte :
   if not Assigned(FrmFormulario) then  Application.CreateForm(TFrmFormulario, FrmFormulario)  else  frmFormulario.Show;
Ele funciona perfeitamente enquanto eu não fecho o formulario, quando eu fecho o formulario, e tento abrir uma nova instancia, ele vai direto para o frmFormulario.show, isto é, há uma instancia criada na memoria (mais na verdade não tem nada aberto).
 o que fazer?
Ronaldo Lanhellas

Ronaldo Lanhellas

Responder

Posts

28/06/2011

Emerson Nascimento

troque

TForm(Self) := nil;

por

FrmFormulario := nil;
Responder

Gostei + 0

28/06/2011

Ronaldo Lanhellas

Utilizo um form modelo onde preciso utilizar codigos genericos, mais tentei no form especializado usar o código que voce sugeriu e também não funcionou 
Responder

Gostei + 0

30/06/2011

Ronaldo Lanhellas

alguem porfavor !!
Responder

Gostei + 0

01/07/2011

Ronaldo Lanhellas

Alguma sugestão : (
Responder

Gostei + 0

01/07/2011

Wilson Junior

Tente assim:
try
  if  not Assigned(FrmFormulario) then
      Application.CreateForm( TFrmFormulario, FrmFormulario )
  else
      frmFormulario.Show
  ;
finally
  FreeAndNil( frmFormulario );
end;


Espero ter colaborado.
Responder

Gostei + 0

01/07/2011

Emerson Nascimento

tente assim:

if not Assigned(FrmFormulario) or not FrmFormulario.Showing then  Application.CreateForm(TFrmFormulario, FrmFormulario)else  frmFormulario.Show;


Responder

Gostei + 0

01/07/2011

Ronaldo Lanhellas

Muito obrigado Emerson, não havia pensado nessa possibilidade (tão simples e eficiente) . 
Resolvido !!
Responder

Gostei + 0

09/05/2013

José

Este tópico esta sendo fechado por inatividade. Se necessário, sinalizar para que seja reaberto ou abrir um novo.
Responder

Gostei + 0

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

Aceitar