Limpar memória. É possível fazer isso?

Delphi

27/02/2003

Olá amigos!

Estou tendo um pequeno grande problema. Tenho um sistema e por diversas vezes entro e saio dele durante o período de trabalho, mas acontece que depois de extamente um certo número de execuções acaba acusando memória insuficiente e tenho que resetar o computador. Pelo que pude perceber deve ficar alguma coisa na memória quando saio do programa e isso vai acumulando a cada execução. Existe alguma forma para que possa limpar estes resíduos que estão em memória? Estou utilizando o Windows98, Delphi5 e Interbase.

Desde já agradeço a todos pela atenção.

Abraços


Carlos Alberto

Carlos Alberto

Curtidas 0

Respostas

Aroldo Zanela

Aroldo Zanela

27/02/2003

Você está liberando os formuláros com Form.Free ou Action = caFree no evento OnClose?


GOSTEI 0
Carlos Alberto

Carlos Alberto

27/02/2003

[quote:67d2796894=´Aroldo Zanela´]Você está liberando os formuláros com Form.Free ou Action = caFree no evento OnClose?[/quote:67d2796894]

Estou utilizando o Form.Free no onClose. Faz alguma diferença entre um e outro?


GOSTEI 0
Zoom

Zoom

27/02/2003

O problema é no windows e não no seu sistema. É que o windows acaba acumulando na memória aquilo que foi uma vez alocado. Existem programas que liberam a memória da máquina : memorycleaner e o excelente rambooster, este eu conheço bem e funciona. Vc deve achar no superdownloads.


GOSTEI 0
Hugobarros

Hugobarros

27/02/2003

Geralmente este erro ocorre quando eu depuro o programa e por qq razão ´reseto´ ele através do ctrl+F2, neste caso a conexão com o banco fica aberta e depois de 4 ou 5 execuções recebo a mensagem.

Seguindo esta idéia, verifique se por acaso, por esquecimento, você não está fechando a conexão com o banco.

[]´s

Hugo


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

27/02/2003

Artigo: Liberar Form da Memória
Autor: Julio Graciel
---

Quando você usa Form.Free ou Form.Destroy, você está imediatamento solicitando a
destruição do formulário. Com Form.Release, todas as mensagens pendentes no pool do
formulário são postadas - exemplo: redesenho do formulário, movimento do mouse, pressionamento de tecla,...

use assim:


FormXX := TFormXX.create ( application );
try
FormXX.ShowModal
finally
FormXX.Release;
FormXX := nil;
end;



GOSTEI 0
POSTAR