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
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
Curtir tópico
+ 0
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
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:.
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
Clique aqui para fazer login e interagir na Comunidade :)