Alexsander

Membros
  • Total de ítens

    345
  • Registro em

  • Última visita

  • Days Won

    2

Alexsander last won the day on March 25 2013

Alexsander had the most liked content!

Reputação

6 Neutral

1 Seguidor

Sobre Alexsander

  • Rank
    Membro Ativo
  • Data de Nascimento

Profile Information

  • Localização
    Porto Alegre, RS
  1. Agora é possível instalar no CUPS com os drivers da Argox: http://www.argox.com/content.php?sno=0000033&P_ID=19
  2. Olhei os fontes, daria pra colocar logo após o IF abaixo (colocando nil como valor default para não afetar os programas existentes): procedure TACBrDFe.EnviarEmail(sPara, sAssunto: String; sMensagem: TStrings; sCC: TStrings; Anexos: TStrings; StreamNFe: TStream; NomeArq: String; { AQUI ==> } sBCC: TStrings); (...) if Assigned(sCC) then begin for i := 0 to sCC.Count - 1 do MAIL.AddCC(sCC[i]); end; //--- AQUI if Assigned(sBCC) then begin for i := 0 to sBCC.Count - 1 do MAIL.AddBCC(sBCC[i]); end; //--- fim MAIL.Send; end; Com isso também daria para alterar o ACBrMonitorPLUS para acrescentar a opção CCO no comando NFE.ENVIAREMAIL. Que tal?
  3. Vou testar este upgrade num ambiente de testes. Seria interessante incluir este tipo de requisito na documentação. Enquanto isso, uma alternativa que compilou (não testei se imprime mesmo), junto com a declaração de uma variável tmp_cont integer, foi a seguinte: {$IFDEF FPC_FULLVERSION < 30000} Printer.Write(AString,Length(AString),tmp_cont); {$ELSE} Printer.Write(AString); {$ENDIF}
  4. ACBrDevice.pas(1571,25) Error: Wrong number of parameters specified for call to "Write" procedure TACBrDevice.EnviaStringRaw (...) (...) Printer.Write(AString); (...) Na unit Printers a declaração está assim: function Write(const Buffer; Count:Integer; var Written: Integer): Boolean; virtual; Com SVN blame descobri que esta alteração entrou na release 12443: ~/fontes/ACBr$ svn -r 12442:HEAD log Fontes/ACBrSerial/ACBrDevice.pas ------------------------------------------------------------------------ r12443 | dopi | 2016-10-02 21:47:17 -0300 (Dom, 02 Out 2016) | 18 linhas -- ACBrDevice -- [+] Adicionado o suporte a portas "RAW", permitindo usar o "Nome da Impressora", do sistema operacional, na definição da "Porta" Exemplo: "SWEDA SI-300S" ou "RAW:SWEDA SI-300S" Use "*" para imprimir na impressora Default [+] Nova sintaxe para atribuição de portas do tipo "Arquivo". Exemplo: "C:\TEMP\saida.prn" ou "FILE:C:\TEMP\saida.prn" [+] Adicionada nova propriedade "DeviceType: TACBrDeviceType", sendo que TACBrDeviceType = (dtFile, dtSerial, dtTCP, dtRawPrinter, dtHook) Essa propriedade é detectada automaticamente, na atribuição da propriedade "Porta", mas pode ser atribuída posteriormente, caso a detecção automática não esteja correta. -- ACBrPosPrinter -- [-] Ajuste para ignoarar as tags '</corte_parcial> e </corte_total> quanto propriedade "CortaPapel" for False. [-] Correção na exibição de mensagens de erro com acentuação. (por: DSA) ------------------------------------------------------------------------ Estou compilando com Lazarus 1.4.4 e FPC 2.6.4 num Ubuntu 14.04 LTS.
  5. Requisito mínimo para o ACBr no Lazarus é a versão 1.6?
  6. Também tive este erro, mas será que está correto comentar uma linha Printer.Write num componente que deve IMPRIMIR alguma coisa?
  7. Ocorreu no Lazarus 1.4.4, existe algum workaround para contornar o problema?
  8. Tenho um caso onde o mesmo ACBrMonitorPlus é usado por empresas com 3 certificados diferentes. Antes de enviar cada NFe o aplicativo chama a "SetCertificado" da empresa correspondente. Pelo menos uma vez por dia uma NFe é rejeitada por "CNPJ difere do CNPJ do certificado digital". Parece que, entre o SetCertificado e o EnviarNFe, alguma outra conexão vem e troca o certificado. Não seria interessante haver algum comando novo do monitor para ajudar a evitar este problema?
  9. Fiz o rebuild, agora parece estar OK. Obrigado.
  10. Mas nem executei meu projeto, que na verdade é um form novo, vazio, apenas com o ACBrMail. Nem salvei, diga-se de passagem: Abri um novo projeto (Project -> New Project -> OK) Inseri o ACBrMail no meio do form Fechei o Lazarus, ele perguntou "Save changes to project project1?" Cliquei no botão "No" e ficou travado por uns 30 segundos.
  11. Com esta alteração não trava mais ao fechar a janela, porém agora ao fechar o Lazarus depois de colocar o ACBrMail no Form (mesmo sem executar), fica cerca de 30 segundos "travado".
  12. #0 RESET(0x7ffff7fe6400) at ../../../Fontes/Terceiros/synalist/smtpsend.pas:484 #1 CLEAR(0x7ffff7eb1160) at ../../../Fontes/ACBrTCP/ACBrMail.pas:347 #2 DESTROY(0x7ffff7eb1160, 0x1) at ../../../Fontes/ACBrTCP/ACBrMail.pas:414 #3 CLASSES_TCOMPONENT_$__DESTROYCOMPONENTS at :0 #4 ?? at :0 #5 gtk_text_iter_get_type@plt at :0 #6 ?? at :0 #7 CLASSES_TCOMPONENT_$__DESTROY at :0 #8 ?? at :0 #9 gtk_text_iter_get_type@plt at :0 #10 ?? at :0 #11 ?? at :0
  13. Não comandei nada, apenas larguei o componente na tela, executei e mandei fechar via botão "X" do formulário. O fSMTP.Reset que trava está no código da TACBrMail.Clear, que é chamada pelo destrutor: destructor TACBrMail.Destroy; begin Clear; fAltBody.Free; fBody.Free; fBCC.Free; fReplyTo.Free; fMIMEMess.Free; fSMTP.Free; inherited Destroy; end; Comentei a linha do fSMTP.Reset e não travou, mas imagino que esse Reset seja necessário.
  14. Aquele comando fSMTP.Reset já entra na Synapse. O travamento ocorre na seguinte procedure: function TSMTPSend.ReadResult: Integer; var s: String; begin Result := 0; FFullResult.Clear; repeat s := FSock.RecvString(FTimeout); { <============= AQUI } FResultString := s; FFullResult.Add(s); if FSock.LastError <> 0 then Break; until Pos('-', s) <> 4; s := FFullResult[0]; if Length(s) >= 3 then Result := StrToIntDef(Copy(s, 1, 3), 0); FResultCode := Result; EnhancedCode(s); end;