No demo não deu o erro aqui no meu PC, só dá na máquina do Cliente, não dá em todos os boletos, é hora sim e hora não...
Eu estive analisando ontem a montagem do código de barras do boleto function TACBrBancoSantander.MontarCodigoBarras ( const ACBrTitulo: TACBrTitulo) : String;. OBS: No meu caso é o Santander.
Nesta linha, reparei que dependendo das configurações do sistema operacional ele não retorna o valor com 2 casas decimais, quando o final é zero.
IntToStrZero(Round(ACBrTitulo.ValorDocumento*100),10) + //Valor nominal
Então modifiquei para que não houvesse nenhuma alteração no valor, devido a multiplicação por 100, formatei para ser apresentado com 2 casas decimais e removi todos os pontos e virgulas do valor.
IntToStrZero(
StrToInt64(
StringReplace(
StringReplace(
FormatFloat('0.00', ACBrTitulo.ValorDocumento),
'.', '', [rfReplaceAll]
),
',', '', [rfReplaceAll]
)
),
10) + //Valor nominal
Está tudo funcionando normal depois desta alteração, 100% correto, hoje todos os boletos gerados foram correto, porém gosto de deixar mais tempo em testes, vou confirmar semana que vem se está tudo correndo bem, mas já adianto que pela quantidade de boletos que já emitimos hoje, com certeza está funcionando, antes o erro aparecia aleatoriamente com uma quantidade menor de emissões...