Exception class EAccessViolation with message ´Access violat
O que pode ser esse erro
O que pode ser?
--------------------------- 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
Curtidas 0
Respostas
Onjahyr
07/02/2008
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...
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...
GOSTEI 0
Jpauloss
07/02/2008
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?
GOSTEI 0
Massuda
07/02/2008
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.
GOSTEI 0
Jpauloss
07/02/2008
[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?
GOSTEI 0
Massuda
07/02/2008
Screen.ActiveForm e Screen.ActiveControl podem ser nil durante a execução do programa. Seu código não testa essa situação.
GOSTEI 0
Jpauloss
07/02/2008
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?
GOSTEI 0
Djjunior
07/02/2008
if Screen.ActiveForm = nil then
exit;
exit;
GOSTEI 0
Jpauloss
07/02/2008
if Screen.ActiveForm = nil then
exit;
Obrigado por mais uma aula.
GOSTEI 0