Colegas, procurei no fórum mas não encontrei qualquer tópico com conteúdo semelhante.
Trabalho com Delphi e comecei a utilizar o ACBrNFe recentemente. Ocorre que num formulário eu instanciei dois componentes ACBrNFe e, ao sair do Delphi sempre era levantada uma exceção por violação de acesso.
Percebi que o problema está no OnCreate e no OnDestroy do componente:
constructor TACBrNFe.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FConfiguracoes := TConfiguracoes.Create( self );
FConfiguracoes.Name:= 'Configuracoes' ;
{$IFDEF COMPILER6_UP}
FConfiguracoes.SetSubComponent( true );{ para gravar no DFM/XFM }
{$ENDIF}
FNotasFiscais := TNotasFiscais.Create(Self,NotaFiscal);
FNotasFiscais.Configuracoes := FConfiguracoes;
FWebServices := TWebServices.Create(Self);
if FConfiguracoes.WebServices.Tentativas <= 0 then
FConfiguracoes.WebServices.Tentativas := 5;
{$IFDEF ACBrNFeOpenSSL}
if FConfiguracoes.Geral.IniFinXMLSECAutomatico then
NotaUtil.InitXmlSec ; // <--- DEVERIA SER OBSERVADO SE ESTOU EM TEMPO DE PROJETO (csDesigning in ComponentState)
{$ENDIF}
FOnGerarLog := nil ;
end;
destructor TACBrNFe.Destroy;
begin
FConfiguracoes.Free;
FNotasFiscais.Free;
FCartaCorrecao.Free;
FWebServices.Free;
{$IFDEF ACBrNFeOpenSSL}
if FConfiguracoes.Geral.IniFinXMLSECAutomatico then
NotaUtil.ShutDownXmlSec ; // <--- DEVERIA SER OBSERVADO SE ESTOU EM TEMPO DE PROJETO (csDesigning in ComponentState)
{$ENDIF}
inherited;
end;
não sei se este é o melhor canal para passar essa informação, então peço que movam o tópico para o local correto.