ME AJUDEM NISSO....ERRO DE MEMORIA E DESABILITAÇÃO

Delphi

28/06/2003

Pessoal estou com um problema de mensagem de erro...Aparece as vezes a mensagem Insuficient Memory. Por que aaparece esta msg já que tenho muita memoria...E a outra pergunta é como desabilitar as teclas alt+F4...Por favor respondam...
André


Andre Raposo

Andre Raposo

Curtidas 0

Respostas

Kanedasam

Kanedasam

28/06/2003

Normalmente qualquer problema que venho ocorrer no seu pc à culpa e sempre do Windows, mas antes de lhe falar em formatar o seu hd vamos primeiro para uma lista de possibilidades;

No Windows
1.Retire todos os programas residentes na memória que são desnecessários do tray da barra do Windows.
2.Vá em iniciar-> executar -> e digite : msconfig e faça as mudanças necessárias . Faça isso somente se tiver certeza do que esta fazendo
3.Verifique se o seu arquivo SWP esta funcionando corretamente.

No Delphi
1.Verifique os seus Stored’s da sua aplicação se estão funcionando adequadamente.
2.Analisa com cuidado as units incluídas na sessão uses , retire aquelas que não são necessárias as vezes são inclusas no momento em estamos fazendo os testes em nossos sistemas e quando finalizamos o sistema ou as telas do sistema esta units ficam permanecidas são compiladas juntos e ocupam memória desnecessária quando o sistema e rodado e aumentam o tamanho do arquivo. Eu tinha um executável de 2.7 MB e depois disso ele passou para 1.03 MB.
3.Modifique a forma de chamadas das form liberando da memória todas as mensagens postadas no spool
Ex:
[color=blue:548a74d635]FormXX := TFormXX.create ( application );
try
FormXX.ShowModal
finally
FormXX.Release;
FormXX := nil;
end;[/color:548a74d635]4.Tenta otimizar o Maximo a sua aplicação
Ex : Um erro que vejo muito em exemplos e em relação a relatórios de aniversários que repete o mesmo código 12 vezes como este
[color=blue:548a74d635]
Procedure TMainForm.ActionAnivMesJanExecute(Sender: TObject); // mês de janeiro
begin
Try
frmRelAniversario.QRlblMes.Caption := ´Aniversariantes do Mês de: Janeiro´;
with frmRelAniversario.qryAniversario do
Begin
frmRelAniversario.qryAniversario.ParamByName(´vcp00´).Clear;
frmRelAniversario.qryAniversario.Close;
* ParambyName(´vcp00´).Value := 01; // a modificação estaria aqui.
frmRelAniversario.qryAniversario.Open;
frmRelAniversario.QuickRep1.Preview;
end;
except
ShowMessage(´Erro ao tentar exibir o Relatório de Aniversariantes!!´);
end; // TRY

ParambyName(´vcp00´).Value := 01;[/color:548a74d635] o ‘01’ pode ser trocado por uma variável tipo numérico Mes . e a procedure transformada em função ficaria



[color=blue:548a74d635]Function ActionAnivMesJanExecute(Mes:Integer); .
begin
Try
frmRelAniversario.QRlblMes.Caption := ´Aniversariantes do Mês de: Janeiro´;
with frmRelAniversario.qryAniversario do
Begin
frmRelAniversario.qryAniversario.ParamByName(´vcp00´).Clear;
frmRelAniversario.qryAniversario.Close;
ParambyName(´vcp00´).Value := Mes;
frmRelAniversario.qryAniversario.Open;
frmRelAniversario.QuickRep1.Preview;
end;
except
ShowMessage(´Erro ao tentar exibir o Relatório de Aniversariantes!!´);
end; [/color:548a74d635]
espero ter ajudado.


GOSTEI 0
Kanedasam

Kanedasam

28/06/2003

Normalmente qualquer problema que venho ocorrer no seu pc à culpa e sempre do Windows, mas antes de lhe falar em formatar o seu hd vamos primeiro para uma lista de possibilidades;

No Windows
1.Retire todos os programas residentes na memória que são desnecessários do tray da barra do Windows.
2.Vá em iniciar-> executar -> e digite : msconfig e faça as mudanças necessárias . Faça isso somente se tiver certeza do que esta fazendo
3.Verifique se o seu arquivo SWP esta funcionando corretamente.

No Delphi
1.Verifique os seus Stored’s da sua aplicação se estão funcionando adequadamente.
2.Analisa com cuidado as units incluídas na sessão uses , retire aquelas que não são necessárias as vezes são inclusas no momento em estamos fazendo os testes em nossos sistemas e quando finalizamos o sistema ou as telas do sistema esta units ficam permanecidas são compiladas juntos e ocupam memória desnecessária quando o sistema e rodado e aumentam o tamanho do arquivo. Eu tinha um executável de 2.7 MB e depois disso ele passou para 1.03 MB.
3.Modifique a forma de chamadas das form liberando da memória todas as mensagens postadas no spool
Ex:
[color=blue:839d0f7b1e]FormXX := TFormXX.create ( application );
try
FormXX.ShowModal
finally
FormXX.Release;
FormXX := nil;
end;[/color:839d0f7b1e]4.Tenta otimizar o Maximo a sua aplicação
Ex : Um erro que vejo muito em exemplos e em relação a relatórios de aniversários que repete o mesmo código 12 vezes como este
[color=blue:839d0f7b1e]
Procedure TMainForm.ActionAnivMesJanExecute(Sender: TObject); // mês de janeiro
begin
Try
frmRelAniversario.QRlblMes.Caption := ´Aniversariantes do Mês de: Janeiro´;
with frmRelAniversario.qryAniversario do
Begin
frmRelAniversario.qryAniversario.ParamByName(´vcp00´).Clear;
frmRelAniversario.qryAniversario.Close;
* ParambyName(´vcp00´).Value := 01; // a modificação estaria aqui.
frmRelAniversario.qryAniversario.Open;
frmRelAniversario.QuickRep1.Preview;
end;
except
ShowMessage(´Erro ao tentar exibir o Relatório de Aniversariantes!!´);
end; // TRY

ParambyName(´vcp00´).Value := 01;[/color:839d0f7b1e] o ‘01’ pode ser trocado por uma variável tipo numérico Mes . e a procedure transformada em função ficaria



[color=blue:839d0f7b1e]Function ActionAnivMesJanExecute(Mes:Integer); .
begin
Try
frmRelAniversario.QRlblMes.Caption := ´Aniversariantes do Mês de: Janeiro´;
with frmRelAniversario.qryAniversario do
Begin
frmRelAniversario.qryAniversario.ParamByName(´vcp00´).Clear;
frmRelAniversario.qryAniversario.Close;
ParambyName(´vcp00´).Value := Mes;
frmRelAniversario.qryAniversario.Open;
frmRelAniversario.QuickRep1.Preview;
end;
except
ShowMessage(´Erro ao tentar exibir o Relatório de Aniversariantes!!´);
end; [/color:839d0f7b1e]
espero ter ajudado.


GOSTEI 0
Renaldo

Renaldo

28/06/2003

André,
Dê uma olhada em www.clubedelphi.com.br e clique em dicas e macetes, vc vai achar a resposta par o ALT+F4 e outras coisas bem legais.

Quanto a memória, fica um pouco VAGO dar um diagnóstico assim sem ver exatamente o que está acontecendo.

Inicialize a máquina no modo de segurança e ente rodar o aplicativo, se o erro não aparecer, então... Procure na internet o REGCLEANER, instale-o e verifique através dele o que está inicializando no seu PC, Faça também uma limpeza completa (verifique no Menu) e exclua sem medo os ítens encontrados, após essa faxina, reinicie o micro e boa sorte.

Um abraço,
Renaldo Alves


GOSTEI 0
Renaldo

Renaldo

28/06/2003

André,
Dê uma olhada em www.clubedelphi.com.br e clique em dicas e macetes, vc vai achar a resposta par o ALT+F4 e outras coisas bem legais.

Quanto a memória, fica um pouco VAGO dar um diagnóstico assim sem ver exatamente o que está acontecendo.

Inicialize a máquina no modo de segurança e ente rodar o aplicativo, se o erro não aparecer, então... Procure na internet o REGCLEANER, instale-o e verifique através dele o que está inicializando no seu PC, Faça também uma limpeza completa (verifique no Menu) e exclua sem medo os ítens encontrados, após essa faxina, reinicie o micro e boa sorte.

Um abraço,
Renaldo Alves


GOSTEI 0
POSTAR