Erro Falta de Memória.
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
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
Curtidas 0
Respostas
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
Espero ter ajudado
Um Abraço
GOSTEI 0
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.
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
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.
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
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
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