Fórum EOutOfMemory #335905
10/01/2007
0
Minha aplicação começou a apresentar o erro EOutOfMemory.
Este erro ocorre normalmente quando estou mexendo em um TChart (criando, dando zoom, removendo zoom). Também acontece as vezes quando tento alterar alguma célula no TStringEdit e já aconteceu poucas vezes quando tento manipular um array de char.
Alguém já teve este erro ou tem alguma idéia do que acontece?
Este erro ocorre normalmente quando estou mexendo em um TChart (criando, dando zoom, removendo zoom). Também acontece as vezes quando tento alterar alguma célula no TStringEdit e já aconteceu poucas vezes quando tento manipular um array de char.
Alguém já teve este erro ou tem alguma idéia do que acontece?
Rodc
Curtir tópico
+ 0
Responder
Posts
10/01/2007
Aroldo Zanela
Colega,
No caso de componentes de terceiros, fica difícil proteger o código. Minha sugestão é que você aumente o tamanho do arquivo de paginação da memória virtual, se possível, adicionar mais memória física (RAM) na máquina e atualize seus componentes de terceiros.
No seu código, pode ser usado o bloco try...except conforme o exemplo abaixo:
No caso de componentes de terceiros, fica difícil proteger o código. Minha sugestão é que você aumente o tamanho do arquivo de paginação da memória virtual, se possível, adicionar mais memória física (RAM) na máquina e atualize seus componentes de terceiros.
No seu código, pode ser usado o bloco try...except conforme o exemplo abaixo:
Ready := true; try SetLength(pixels, width*height); except on EOutOfMemory do begin Ready := false; raise Exception.Create(´Putz -- Out of memory´); end; end; // try
Responder
Gostei + 0
11/01/2007
Rodc
Já aumentei a memória virtual e a máquina tem bastante memória física, mas ainda ocorre o erro.
Percebi que removendo uma rotina de acesso à serial o erro para de ocorrer. O erro só ocorre se eu estiver manuseando o TChart e comunicando com a serial.
Possivelmente o erro não é na serial, mas sim no alocamento de memória que a função faz para pegar os dados da serial.
Não sei mais o que fazer, porque não posso parar a comunicação serial com meu instrumento enquanto o usuário estiver analisando o gráfico.
Percebi que removendo uma rotina de acesso à serial o erro para de ocorrer. O erro só ocorre se eu estiver manuseando o TChart e comunicando com a serial.
Possivelmente o erro não é na serial, mas sim no alocamento de memória que a função faz para pegar os dados da serial.
Não sei mais o que fazer, porque não posso parar a comunicação serial com meu instrumento enquanto o usuário estiver analisando o gráfico.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)