Fórum Dificuldade em limpar o Form da memória no Delphi #559325
16/07/2016
0
Tenho um form principal (FrmMigra) que esta sendo criado no auto-create e outros form´s que são chamados a partir de botões nesse form principal, o código de cada botão é o mesmo
Application.CreateForm(TfrmSaoLuiz01,frmSaoLuiz01);
frmSaoLuiz01.ShowModal;
frmSaoLuiz01.Release;
esse código é implementado no evento OnClick de cada botão, o detalhe está ao fechar o form que nesse exemplo é o (FrmSaoLuiz01).
Já tentei no evento
OnDestroy
FrmSaoLuiz01:= Nil;
já tentei no Onclose
já tentei opções com o freeandnil
Emanuel Gonçalves
Curtir tópico
+ 0Posts
16/07/2016
Mateus Ribeiro
Faça o seguinte...
No botão que chama o Form: FrmSaoLuiz01:= TFrmSaoLuiz01.Create(FrmMigra); FrmSaoLuiz01.ShowModal; FrmSaoLuiz01.Release; FrmSaoLuiz01:= Nil;
Não esqueça de remover o FrmSaoLuiz01 do AutoCreate.
Qualquer duvida, só perguntar.
Gostei + 0
16/07/2016
Emanuel Gonçalves
Faça o seguinte...
No botão que chama o Form: FrmSaoLuiz01:= TFrmSaoLuiz01.Create(FrmMigra); FrmSaoLuiz01.ShowModal; FrmSaoLuiz01.Release; FrmSaoLuiz01:= Nil;
Não esqueça de remover o FrmSaoLuiz01 do AutoCreate.
Qualquer duvida, só perguntar.
Mateus no auto-create eu tenho apenas os Data módulo e o FrmMigra, o restante está fora do auto-create. O detalhe é que a memória só é limpa quanto fecho o FrmMigra
o FrmMigra tem 18 botões e cada um é responsável por fazer a importação do respectivo banco de dados de 18 lojas, então clico no botão 01 ele abre o FrmSaoLuiz01 para importar os dados da loja 01 feito isso a memória ram dispara em 300mb ou 400mb, após fechar o FrmSaoLuiz01 a memória não reduz e quando passo para o FrmSaoLuiz02 o problema se repete e desse modo o sistema vai acumulando memoria. são 18 Forms e cada um acumulando algo entre 200mb e 400mb
Gostei + 0
16/07/2016
Mateus Ribeiro
Gostei + 0
17/07/2016
Mauricio Rodrigues
eu crio assim
FrmUtilitario := TFrmUtilitario.Create(FrmUtilitario);
FrmUtilitario.ShowModal;
FreeAndNil(FrmUtilitario);
Gostei + 0
18/07/2016
Emanuel Gonçalves
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)