Erro Falta de Memória.

Delphi

20/11/2004

Estou com um problema com o software Delphi 7

Quando abro o aplicativo em desenvolvimento e coloco um debug, na primeira vez funciona, na segunda vez trava o micro com as seguintes mensagens aleatórias:
1) Runtime 216;
2) Memória insuficiente;
3) Simplesmente trava.

O software em desenvolvimento tem:
4.884KB de executável, com 28.187 linhas escritas, e usa vários recursos do sistema como envio de e-mail, editor de texto Word, etc.


Desta forma, só consigo rodar se encerrar o Delphi e inicia-lo novamente.
Será que o delphi não livra a memória usada até ser encerrado?

Verificando os recursos do sistema com o software:
1) Medidor de Recursos;
2) Monitor do Sistema.
Fala que a memória livre esta critica, mas está usando só a memória baixa.

Configuração do micro usado:
Sistema Operacional: Win98se
PV 2.4 MHZ
512 mb Ram
40 mb HD

Agradeço pela ajuda.

m
b.00000@ig.com.br


M

M

Curtidas 0

Respostas

Oscar Candido

Oscar Candido

20/11/2004

Amigo, tente carregar os seus Forms somente quando eles forem necessários, ao invés de carregar todos de uma vez junto com o form principal, e sempre que um forme carregado não seja mais necessário liberio da memória
Espero ter ajudado
Um Abraço


GOSTEI 0
Rm

Rm

20/11/2004

Como fazer o que o colega te respondeu;

No executavel apague as linhas de codigo que carregam todos os formulários. No exemplo que segue só deixei o Form1 ou principal( TF1) e o Datamodule (DM2)
begin
Application.Initialize;
Application.CreateForm(TF1, F1);
Application.CreateForm(TDM2, DM2);
Application.Run;
end.

Depois em cada botão ou menu que chama cada form coloque o codigo respectivo como segue

procedure TF1.BitBtn2Click(Sender: TObject);
begin
FCAD6:=tFCAD6.create(application);
try
FCAD6.ShowModal;
finally
FCAD6.release;
FCAD6:=nil;
end;
end;

Espero que te sejá útil.


GOSTEI 0
Sandra

Sandra

20/11/2004

m,

Não sei se é o caso. Durante o debug, você chega a interromper a execução do programa com a opção ´Run > Program Reset´ ou algo parecido?

Já faz um tempinho que não vejo essa mensagem de erro de memória, mas pelo que me lembro, era mais ou menos esse caso. Caso seja, depois de ´resetar´, experimente desmarcar o(s) breakpoint(s), executar o aplicativo e encerrar em seguida, mesmo sem fazer nada. Depois, acrescente-o(s) novamente. Quem sabe, resolva. :D


Boa sorte.


GOSTEI 0
Mmtoor

Mmtoor

20/11/2004

Prezado:
Em primeiro lugar, o Windows 98 com 512MB de memória é desperdício, isso porque ele não gerencia mais que 128 (até reconhece na inicialização mas não gerencia). Maiores informações em microsoft.com.
Por outro lado, não se deve encher as units dos forms com tantas linhas de comando. Crie uma unit somente para isso e vincule-a em todos os forms criados.
Se esqueceu de mencionar qual a base de dados que utiliza.
mmtoor


GOSTEI 0
POSTAR