Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 3561 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Boa tarde, pessoal!

 

Tudo bem?

 

Gostaria de pedir ajuda com um erro que estou tendo com o componente ACBR.

 

Estou usando o Delphi XE6, windows 8.1 64 bits..

 

O componente está num DataModulo chamado FrmDados...

 

O erro acontece apenas após o envio de mais de uma NFE e ao fechar o sistema, estou anexando um print...

 

Já tentei o seguinte: (na unit principal do sistema, no CLOSE)...

 

- FreeAndNil(FrmDados.ACBR)...

 

- try

  FrmDados.ACBR.Free;

except

 

end;

 

- try

  FrmDados.ACBR.Destroy;

finally

 

end;

 

já tentei colocar FrmDados.ACBR.Free... no Destroy da mesma unit e o mesmo erro aconteceu...

 

será que alguém tem alguma dica do que possa estar acontecendo?

 

Obrigado,

Rafael Hassegawa

post-13688-0-99870500-1424807988_thumb.p

Postado

Creio que seja mais indicado postar no fórum de ObjectPascal, daqui mesmo, ou mover, de qualquer forma, vc precisa analisar bem essa questão observe no teu código se vc não está chamando o free em um ponto e depois desta liberação tenta usar o componente novamente.

 

Me esclareça um detalhe, a primeira nota vai normal? E depois a segunda chega a enviar ou dá esse erro de AV aí?

Postado

Tudo bem, Tiago?

 

Então...

Eu consigo enviar as notas normalmente...

E o erro só acontece quando eu fecho o sistema após o envio de mais de uma NFE...

Se eu envio apenas uma e fecho o sistema, o erro não acontece...

 

Uma coisa eu reparei..

Eu coloquei uns ShowMessages entre o Close do sistema e o Destroy e o erro acontece entre um e outro...

 

Por isso eu tentei dar o free e o destroy do componente tanto no close quando no destroy pra ver se adiantava, mas o erro persiste...

 

É meu primeiro post... vou ver se consigo movê-lo..

 

Obrigado pela ajuda!

Rafael Hassegawa

Postado

Tudo bem Rafael, se vc puder postar como anexo o teu código para dar uma analisada, talvez possamos achar uma forma de melhorar isso...

 

Quanto a mover o tópico creio que os moderadores poderão lhe ajudar.

 

Seja bem-vindo ao fórum!

Postado

Bom dia, Tiago!

 

Muito obrigado!

 

Bom, o código como está agora estou anexando aqui nesta mensagem.

Hoje, não sei porque, começou a dar Access Violation ao enviar a segunda nota.

 

Mas de qualquer forma, este é o Close da tela principal do sistema (que contém o menu).

Sempre que fecho o sistema tentando dar um Free no ACBR, ele dá access violation.

 

Obrigado

post-13688-0-28220100-1424866138_thumb.p

Postado

Bom dia, Juliomar, tudo bem?

 

O componente já está em um Data Module...

Ele se chama FrmDados...

 

Então.. eu comentei a linha do FrmDados.ACBR.Free agora e fiz um teste..

 

ao fechar o sistema ele dá Access Violation do mesmo jeito...

 

E com certeza é alguma coisa relacionada ao componente, pois, se eu abro o sistema e não envio nenhuma nota fiscal eletronica, eu fecho o sistema normalmente sem Access Violation, mas, se eu abro o sistema e envio mais de uma NFE, ao fechar ele sempre dá o Access Violation...

 

Por isso estou procurando alguma forma de contornar isso...

 

Já tentei dar um FreeAndNil... Free.. Destroy... Já coloquei o Free no Close do form, no Destroy... sempre dá access violation!

 

Não consigo entender o porquê...

 

Obrigado

Postado

isso provavelmente ocorre pq o componente está sendo liberado em outro ponto, antes do momento correto para ser liberado da memória, verifica no sue DM se lá já não existe um ocmando Free no ACBrNfe1.

 

Já aconteceu num código aqui da empresa que um componente era liberado em um ponto e no close ao tentar liberá-lo de novo dava access violation.

  • Consultores
Postado

Se o componente está dentro do DataModule, ele não precisa ter Free específico. Ao ser destruído o próprio DataModule destrói os componentes nele contidos.

 

Se seu programa ainda estiver dando esse erro mesmo depois de averiguado o acima, então é melhor você ir removendo as partes desnecessárias do programa até isolar em um executável mínimo, verificável e completo.

  • Curtir 2

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
  • Este tópico foi criado há 3561 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...