Fórum Acess violation ao iniciar meu sistema #391345

26/11/2010

0

Olá amigos,

Como a informática nos deixa pirados.
Estou a 2 dias em cima de um micro de um cliente com XP que apresenta erro de AC ao iniciar meu sistema.

Cheguei a instalar o delphi nesse micro pra tentar descobrir o que há de errado.
Descobri que gera o erro antes da primeira linha do ONCREATE/ONFORMSHOW do form principal.

No arquivo DPR carrego o form principal para depois disparar o RUN.

Linha que gera o erro: Application.CreateForm(TfMenu, fMenu);
Linha que seria executada depois: Application.Run;

Vasculhei a net a procura de solução, o máximo que descobri é que pode ser erro no famoso NTDLL.DLL mas não consigo subsitui-lo, nem sei se seria a solução.

Fiz um aplicativo sem nenhum componente pra testar e roda normalmente.
Pode ser algum componente que eu esteja usando nesse form que esteja causando isso?
Como faço pra descobrir?

Tenho meu sistema instalado em quase 500 micros e somente nesse ocorre isso.

Alguém já passou por algo assim?

Att
Mario
Mario Inacio

Mario Inacio

Responder

Posts

26/11/2010

Mario Inacio

Olá amigos,

Depois que postei a pergunta, criei um sistema novo, e fui colocando os componentes que uso pra ir testando.
Como eu uso o Rave no form principal, era ela que causava o erro de AV.
Removi e está funcionando normal.

Moderador, como faço pra finalizar esse tópico?

att
mario
Responder

Gostei + 0

26/11/2010

Anderson

O que eu faria:

1) No  Application.CreateForm(TfMenu, fMenu);  colocaria assim:

Try
  Application.CreateForm(TfMenu, fMenu);
Except
      on E:Exception do
          ShowMessage(E.Message); // Aqui diz o que saiu errado
End;

2) Revisaria os eventos do TfMenu, pois alguma coisa esta sendo feita no OnCreate (ou algum componente colocado neste Form) para o qual o sistema ainda não esta preparado, por exemplo conectar ao banco de dados automaticamente (algum componente de dados com Active:=True).

Pode ainda estar faltando DLL no sistema, também relacionada ao método OnCreate (falta do Midas.Dll, fbclient.dll, dbxfb.dll, etc.)

3) Revisaria outras partes do código que não tratariam eventuais problemas, normalmente relacionados a acessos de dados, para facilitar a correção dos erros (programação defensiva). Embora isto gere mais trabalho na codificação, terá uma menor probabilidade de ficar as cegas diante de um erro (identificará mais rápido a causa e a solução).

Abraços,


Anderson:.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar