EAccessViolation

Delphi

12/10/2003

É o seguinte: fiz um browser que salvava no registro do windows dados como a página principal escolhida. Mas acabou aparecendo uma mensagem de erro com esse nome aí de cima. Tirei as linhas que gravavam os dados no registro mas o erro continuou aparecendo sempre quando o browser era fechado. O que eu faço pra acabar com essa mensagem chata ?

PS: o programa criava uma chave no registro para salvar os dados. Ele não utilizava as chaves do IE.


Glaubergs

Glaubergs

Curtidas 0

Respostas

Alex.costa

Alex.costa

12/10/2003

Glauber,

EAccessviolation é um erro gerado quando um programa tenta acessar memória alocada para um objeto que não mais existe.
Por exemplo, se eu tenho o código

Objeto = TObject.Create;
Objeto.QualquerMetodo;
Objeto.Free;
Objeto.QualquerPropriedade := Valor; // nesta linha o Delphi vai me retornar um access violation ja que eu ja destrui o Objeto.

Então, verifique no seu programa se não existe nenhuma referencia no fim do programa a um objeto que ja tenha sido destruido.

Espero ter ajudado


GOSTEI 0
Beppe

Beppe

12/10/2003

Objeto = TObject.Create; Objeto.QualquerMetodo; Objeto.Free; Objeto.QualquerPropriedade := Valor; // nesta linha o Delphi vai me retornar um access violation ja que eu ja destrui o Objeto.


Dificilmente o erro ocorrerá nesta linha, pq AV geralmente eh retardado...
AVs tb acontecem quando sequer o obj foi criado:
var
  S: TStream;
begin
  S.Seek(0, soFromEnd);
...


Ataliba


GOSTEI 0
POSTAR