Exception class EAccessViolation with message ´Access violat

07/02/2008

0

O que pode ser esse erro
---------------------------
Debugger Exception Notification
---------------------------
Project ERP.exe raised exception class EAccessViolation with message ´Access violation at address 00780998 in module ´ERP.exe´. Read of address 00000000´. Process stopped. Use Step or Run to continue.
---------------------------
OK   Help   
---------------------------

O que pode ser?


Jpauloss

Jpauloss

Responder

Posts

07/02/2008

Onjahyr

Assim fica dificil de saber né?

Debuga ele pelo Delphi e vê a rotina que tá fazendo isso!!!!

...e diz o que você faz com esse aplicativo, ficará mais fácil...


Responder

25/02/2008

Jpauloss

Assim fica dificil de saber né? Debuga ele pelo Delphi e vê a rotina que tá fazendo isso!!!! ...e diz o que você faz com esse aplicativo, ficará mais fácil...

Só se debugar todo o programa, como faz?
Sei debugar marcando os pontos que quero e apertando F7.
Como seria passar por todas as linhas do programa?


Responder

25/02/2008

Massuda

EAccessViolation
Geralmente isso está relacionado com tentativas de utilizar objetos que não foram criados ou que já foram destruídos (automaticamente ou não) em algum ponto do programa.

Para facilitar, tente determinar onde o erro está ocorrendo. Para isso:[list:daed0285b4][*:daed0285b4]marque as opções de debug em Project/Options/Compiler/Debugging[*:daed0285b4]dê um build (menu Project/Build) no seu programa[*:daed0285b4]inicie a execução do seu programa[*:daed0285b4]volte no Delphi[*:daed0285b4]no menu Search/Find Error, informe o endereço do erro (esse endereço está na mensagem de erro)[/list:u:daed0285b4]Com um pouco de sorte, o Delphi irá mostrar a linha problemática.


Responder

25/02/2008

Jpauloss

[quote:5315b051e5]EAccessViolation
Geralmente isso está relacionado com tentativas de utilizar objetos que não foram criados ou que já foram destruídos (automaticamente ou não) em algum ponto do programa.

Para facilitar, tente determinar onde o erro está ocorrendo. Para isso:[list:5315b051e5][*:5315b051e5]marque as opções de debug em Project/Options/Compiler/Debugging[*:5315b051e5]dê um build (menu Project/Build) no seu programa[*:5315b051e5]inicie a execução do seu programa[*:5315b051e5]volte no Delphi[*:5315b051e5]no menu Search/Find Error, informe o endereço do erro (esse endereço está na mensagem de erro)[/list:u:5315b051e5]Com um pouco de sorte, o Delphi irá mostrar a linha problemática.[/quote:5315b051e5]
A linha que busca é essa
procedure TFrmPrincipal.ParametroInterno(var Msg: TMsg; var Handled: Boolean);
Var
  i: SmallInt;

begin

 // o "TRY" é necessário para evitar mensagens de erros em formulários MDI e SDI
 Try

     // Não aplicar sobre os seguintes componentes:
   If not ((Screen.ActiveControl   is TCustomMemo)        or (Screen.ActiveControl  is TCustomGrid)   or
            (Screen.ActiveControl  is TComboBox)          or (Screen.ActiveControl  is TDBComboBox)   or
            (Screen.ActiveControl  is TDBLookupComboBox)  or (Screen.ActiveControl  is TDBRadioGroup) or
            (Screen.ActiveControl  is TRadioGroup)        or (Screen.ActiveControl  is TButton)       or
            (Screen.ActiveControl  is TBitBtn)            or (Screen.ActiveControl  is TListBox)      or
            (Screen.ActiveForm.ClassName = ´TMessageForm´)) then

O ponteiro fica no antes do if not.
Que faço?


Responder

26/02/2008

Massuda

Screen.ActiveForm e Screen.ActiveControl podem ser nil durante a execução do programa. Seu código não testa essa situação.


Responder

26/02/2008

Jpauloss

Screen.ActiveForm e Screen.ActiveControl podem ser nil durante a execução do programa. Seu código não testa essa situação.

Me dê essa ajudinha aê to começando agora, comprei esse código fonte e estou querendo aprender...
Como faço pra resolver?


Responder

26/02/2008

Djjunior

if Screen.ActiveForm = nil then
exit;


Responder

26/02/2008

Jpauloss

if Screen.ActiveForm = nil then exit;

Obrigado por mais uma aula.


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar