{******************************************************************************}
{ Projeto: Componentes ACBr                                                    }
{  Biblioteca multiplataforma de componentes Delphi para interao com equipa- }
{ mentos de Automao Comercial utilizados no Brasil                           }
{                                                                              }
{ Direitos Autorais Reservados (c) 2020 Daniel Simoes de Almeida               }
{  Voc pode obter a ltima verso desse arquivo na pagina do  Projeto ACBr    }
{ Componentes localizado em      http://www.sourceforge.net/projects/acbr      }
{                                                                              }
{  Esta biblioteca  software livre; voc pode redistribu-la e/ou modific-la }
{ sob os termos da Licena Pblica Geral Menor do GNU conforme publicada pela  }
{ Free Software Foundation; tanto a verso 2.1 da Licena, ou (a seu critrio) }
{ qualquer verso posterior.                                                   }
{                                                                              }
{  Esta biblioteca  distribuda na expectativa de que seja til, porm, SEM   }
{ NENHUMA GARANTIA; nem mesmo a garantia implcita de COMERCIABILIDADE OU      }
{ ADEQUAO A UMA FINALIDADE ESPECFICA. Consulte a Licena Pblica Geral Menor}
{ do GNU para mais detalhes. (Arquivo LICENA.TXT ou LICENSE.TXT)              }
{                                                                              }
{  Voc deve ter recebido uma cpia da Licena Pblica Geral Menor do GNU junto}
{ com esta biblioteca; se no, escreva para a Free Software Foundation, Inc.,  }
{ no endereo 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.          }
{ Voc tambm pode obter uma copia da licena em:                              }
{ http://www.opensource.org/licenses/lgpl-license.php                          }
{                                                                              }
{ Daniel Simes de Almeida - daniel@projetoacbr.com.br - www.projetoacbr.com.br}
{       Rua Coronel Aureliano de Camargo, 963 - Tatu - SP - 18270-170         }
{******************************************************************************}

{******************************************************************************
|* ACBr
|*
|* PROPSITO: Registro de Alteraes
******************************************************************************}

Smbolo : Significado

[+]     : Novo recurso
[*]     : Recurso modificado/melhorado
[-]     : Correo de Bug (assim esperamos)

26/01/2023
[*] TK-3522 ACBrValidador - IE para o estado de GO agora pode comear com 20
  Por : Victor H Gonzales - Pandaaa / Cleiver

07/10/2022
-- ACBrValidador --
[-] Correo na validao do prefixo do GTIN quando documento continha algum
    caractere da lista a ignorar.
  Por: BigWings

20/07/2022
-- ACBrFala --
[-] Correo para que as palavras 'Real/Centavos' sejam colocadas no texto, 
    aps alteraes do ACBrExtenso para alterao de idiomas
    Por: Elias Csar

21/06/2022
-- ACBrExtenso --
[-] Correo de MemoryLeak ao utilizar o ACBrExtenso

20/06/2022
-- ACBrExtenso --
[*] Refatorao no componente para facilitar a incluso de novos idiomas
[+] Incluso de novos idiomas (Ingls e Espanhol)
[+] Incluso de novo formato 'extQuilo' para escrita de peso em Kgs;
    Por: Grupo FS e Elias Csar

29/03/2022
-- ACBrValidador --
[*] Remoo de Warnings e Hints.
   Por: Italo Giurizzato Junior

27/03/2022
-- Diversos --
[*] Remoo de Warnings e Hints.
   Por: Waldir Paim

25/03/2022
-- ACBrValidador --
[*] Remoo de Warnings e Hints.
   Por: Italo Giurizzato Junior

08/06/2020
-- ACBrValidador --
[+] Includa validao para o Carto Nacional do SUS (tdCNS).
    https://www.projetoacbr.com.br/forum/topic/62379-acbrvalidador-cart%C3%A3o-nacional-do-sus/
  Por: marcelomgoncalves / BigWings

11/06/2020
-- ACBrValidador --
[+] Adicionado o mtodo "RemoverMascara"
    Function RemoverMascara(const AValue: String; const Mascara: String): String;
    til para Remover macaras criadas com FormatarMascaraDinamica

18/05/2020
-- ACBrEnterTab --
[*] Ajustes para compatabilizao com FMX
    (por: DSA)

07/05/2020
-- ACBrCMC7 --
[*] Ajustes para permitir o parser de CMC7, lidos pela Impressora EPSON TM-H6000IV
    (por: DSA)

06/04/2020
-- ACBrValidador --
[+] Adicionado o mtodo "FormatarMascaraDinamica"
    Function FormatarMascaraDinamica(const AValue: String; const Mascara: String): String;
    til para criar rotinas de Formatao de Mascara durante OnTyping, OnChange

-- ACBrCargaBal, ACBrTroco --
[*] Ajustes para compilao em Android NEXTGEN
    (por: DSA)

29/08/2018
-- ACBrValidador --
[*] https://www.projetoacbr.com.br/forum/topic/53119-poss%C3%ADvel-erro-no-acbrvalidador/
    por: Valdir dill

22/05/2019
-- ACBrCalculadora --
[+] Ajuste para Zerar o Valor do display, quando sair com Esc
    https://www.projetoacbr.com.br/forum/topic/32846-acbrcalculadora-sugesto/
    (por: DSA)

14/05/2019
-- ACBrCargaBal --
+ Incluso do campo "Cdigo da informao Extra do item para a verso 3 do arquivo para modelo tipo MGV6 por Iago Mozart
- Ajustes por Waldir Paim

04/04/2019
-- ACBrCargaBal --

04/07/2018
-- ACBrValidador --
[+] Adicionado a validao do prefixo GTIN ao ACBrValidador, conforme tabela 
    provida pelo site da NF-e.
    http://www.nfe.fazenda.gov.br/portal/exibirArquivo.aspx?conteudo=mpYVEbsVRuE=
    por: regys.silveira

25/05/2018
-- ACBrCargaBal --
[-] Gerao de arquivos da Toledo no estava sendo feita por verso.
[+] Adicionada verso 1 do arquivo de itens para Toledo para retro-compatibilidade,
    embora no cdigo no esteja sendo chamada. Veja comentrio no mtodo
    TACBrCargaBal.GerarArquivos
[+] Adicionada propridade EAN13Fornecedor para Toledo, verso de arquivo 2 e 3

25/04/2018
-- ACBrExtenso --
[-] Correo para valores superiores ao MaxInt
    https://www.projetoacbr.com.br/forum/topic/42975-acbrextenso-convertendo-errado-valor-acima-de-maxint/

05/08/2017
-- ACBrValidador --
[+] Adicionado o mtodo:
    function OnlyCNPJorCPF(const Documento: String): String;
    Retorna apenas nmeros, e apenas se o contedo for CPF ou CNPJ, caso contrrio
    retorna vazio

28/07/2017
-- ACBrValidador --
[*] Mtodo "TACBrValidador.ValidarEmail". Ajustes para sempre usar validao por
    cdigo  (por: DSA)

20/07/2017
-- ACBrEnterTab --
[+] Adicionada a propriedade "UseScreenControl", para modificar o comportamento
    da Seleao do Prximo componente, baseado em "Screen.ActiveControl"
    ou "Form.ActiveControl"
    (por: DSA)

14/07/2017
-- ACBrValidador, ACBrValidadorTest --
[*] Mtodo "ValidarEmail" modificado para suportar uma lista de emails
[*] Mtodo "FormatarFone", ajuste para no formatar nmeros apenas com zeros
    (por: DSA)

18/02/2017
-- ACBrValidador , ACBrValidadorTest -- 
[-] Melhoria na validao de e-mail
[+] Novo teste de validao de e-mail  
    http://www.projetoacbr.com.br/forum/topic/34631-acbrvalidador-passa-teste-de-e-mail-com-espao/
    (por: BigWings)
		
17/01/2017
-- ACBrValidador --
[*] Adio do espao para validar o e-mail pois o mesmo no pode ter
    http://www.projetoacbr.com.br/forum/topic/34631-acbrvalidador-passa-teste-de-e-mail-com-espa%C3%A7o/
    (por: Juliomar Marchetti)
		
21/11/16
-- ACBrCargaBal --
[*] Correo para memoria leak do componente
    http://www.projetoacbr.com.br/forum/topic/33552-tacbrcargabal-memory-leak-vazamento-de-mem%C3%B3ria/
    (por : Juliomar Marchetti)

11/10/16
-- ACBrCalculadora --
[+] Adicionada funcionalidade para zerar o display quando pressionar ESC e
    "SaiComEsc = False"
    http://www.projetoacbr.com.br/forum/topic/32846-acbrcalculadora-sugest%C3%A3o/

12/08/16
-- ACBrValidador --
[*] Movido funo interna RemoveZerosEsquerda() para a unit ACBrUtil do pacote
    ACBrComum.

21/07/2016
-- ACBrValidador --
[-] Correo para validar IE no PE
    http://www.projetoacbr.com.br/forum/topic/31351-erro-de-valida%C3%A7%C3%A3o-de-ie-pe-acbrvalidador/

12/07/2016
-- ACBrCargaBal --
[+] Adio da integrao URF32 balana Urano!
    http://www.projetoacbr.com.br/forum/topic/31195-integra%C3%A7%C3%A3o-sistema-urf32-balan%C3%A7a-urano/
    por : Juliomar Marchetti

04/04/2016
-- ACBrValidador --
[-] Mtodo FormatarCEP. Ajuste para conseguir formatar CEPs com 5 dgitos,
    acrescentando "000" a direita (por: DSA)
    http://www.projetoacbr.com.br/forum/topic/29139-melhoria-no-m%C3%A9todo-formtarcep/

28/03/2016
-- ACBrValidador --
[-] Mtodo FormatarCEP. Corrigida formatao de CEPs com Zero a esquerda
[+] Adicionada sobrecarga nos mtodos FormatarCEP e ValidarCEP, para permitir
    parmetros como Integer      (por: DSA)

31/01/2016
-- ACBrValidador --
[+] acrescentada validao de email
    http://www.projetoacbr.com.br/forum/topic/8307-pequeno-bug-no-acbrvalidador/#comment-182187

04/01/2016
-- ACBrCargaBal --
[+] Gerao de arquivo para Urano no padro topmax S (acrescentado modelo)
    http://www.projetoacbr.com.br/forum/topic/27051-acbrcargabal-urano-topmax-s/
    por: regys.silveira

30/12/2015
-- ACBrCargaBal --
[*] Adicionado tratamento com ACBrSTR nas mensagens com caracteres acentuados.
(Jean Patrick)

30/11/2015
-- ACBrValidador --
[-] Correo em FormatarCEP, para adicionar Zeros a direita
    http://www.projetoacbr.com.br/forum/topic/26328-formatarcep-padleft-para-padright/

29/10/2015
-- ACBrValidador --
[-] Ajusta para Modulo11 atribuir corretamente o valor do parmetro "Documento"
    http://www.projetoacbr.com.br/forum/topic/25603-acbrvalidador-fun%C3%A7%C3%A3o-modulo11/

14/05/2015
-- ACBrValidador -- (por: Graziele Rocha Serafim)
[-] Correo FormatarFone() quando os primeiros digitos so 0.

23/04/2015
-- ACBrValidador --
[+] Adicionada verificao de RENAVAM   (sincronismo com Trunk)

19/10/2014
-- ACBrValidador --  (por: DSA)
[*] Ajustes para permitir UnitTeste
[*] Ajustes na formatao de mascaras de algumas Inscrio Estadual

01/08/2013
-- ACBrValidador --
[*] Acertos de acentuao nas mensagens de Erro.
    http://www.projetoacbr.com.br/forum/index.php?/topic/11666-mensagens-no-acbrvalidador/

18/06/2013
-- ACBrValidador --
[+] Acerto no calculo da IE para o estado do ES
    http://www.projetoacbr.com.br/forum/index.php?/topic/11003-erro-valida%C3%A7%C3%A3o-inscri%C3%A7%C3%A3o-estadual-estado-es/
    por: regys.silveira

26/03/2013
-- ACBrCargaBal --
[+] Adiconado o suporte a gerao de nutricionais na carga de balana
    por: Carlos Nascimento

04/11/2012
-- ACBrCMC7 --
[-] Acerto para retornar corretamente o numero da conta do banco HSBC
    por: regys silveira

14/04/2012
-- ACBrCMC7 --
[+] Adicionada rotinas de verificao dos dgitos C1, C2 e C3 (por CrasH)
    http://www.djsystem.com.br/acbr/forum/viewtopic.php?f=13&t=5747

30/04/2012
-- ACBrGIF --
[-]    Remoo das warnings por converso de string
       (Rgys Silveira)

27/04/2012
-- ACBrGIF --
[-]    Acerto no Gif1.pas para que o ACBrGIF funcione no D2010
       (Rgys Silveira)

13/12/2011
-- ACBrValidador--
[-]    Correo no calculo de Insc.Estadual da BA para numeros com 9 dgitos (DSA)
[-]    Correo no calculo de DF, removida restrio do 3 digito ser '3,4,5' (DSA)
[+]    Adicionada funo rpida para verificao da IE (por: Rgys silveira)

-- ACBrCargaBal -- 02/01/2012
[+]    Adicionado a gerao de arquivos para o modelo Urano, contribuio
       de reginaldocosta postado no fru.
       http://djsystem.com.br/acbr/forum/viewtopic.php?f=10&t=4355
       (por: Rgys Silveira, conciliao dos fontes)

-- ACBrValidador-- 13/12/2011
[-]    Acerto o calculo do GTIN 
       (por: Rgys silveira)

-- ACBrValidador-- 28/11/2011
[+]    Adio da validao do nmero do GTIN.
       (por: Rgys silveira)

-- ACBrValidador-- 13/10/2011
[+]    Adio da validao do nmero do SUFRAMA. 
       (por: Rgys silveira)

-- ACBrCargaBal -- 19/09/2011
[+]    Adio do componente ACBrCargaBal para gerar arquivos de produtos 
       para balanas. (por: Rgys silveira)

-- ACBrTroco -- 03/09/2011
[*]    No considerar a existncia da cdula de um real.  (DSA)

-- ACBrInStore -- 03/05/2011
[+]    Adicionado evento OnGetPrecoUnitario, para capturar o preo unitrio do 
       produto, este se vier na etiqueta valot total o componente acha o peso,
       se vier peso o componente achar o valor totral.
       idia de DSA e criado por (Isaque Pinheiro)

-- ACBrInStore -- 02/05/2011
[+]    Criado um novo componente ACBrInStore, para desmembrar cdigo de barra
       gerado por balana por (Isaque Pinheiro)

Verso 0.9.0b  21/04/10
-- ACBrECF --
[+]    Implementado propriedade "TotalTroco" para buscar e guadar o total do 
       troco nos ECFs.
[+]    Implementado propriedade "TotalTroco" na class "TACBrECFDadosRZ"

Verso 0.8.9b  03/04/10
-- ACBrECFDaruma --
[-]    Corrigido Bug no mtodo "UsuarioAtual", no carregava o numero do usurio 
       atual no modelo FS345. (Por Isaque Pinheiro)

Verso 0.9.0a  16/03/10
-- ACBrECF --
[*]    Propriedade renomeada de "ReducaoZClass" para "DadosReducaoZClass" 
       para ficar compativel com os nomes das outras propriedades "DadosReducaoZ"
       e "DadosUltimaReducaoZ". (por : Isaque Pinheiro)

Verso 0.9.0a  14/03/10
-- ACBrECF --
[-]    Correo de vazamento de memoria em TACBrECFDadosRZ  (por: DSA)

Verso 0.9.0a  13/03/10
-- ACBrECF --
[+]    Criada uma nova class "TACBrECFDadosRZ" para armazenar todas as informaes
       da Reduo Z, centralizando os dados e melhorando a captura do dados, que
       hoje esta sendo feita atravs de TXT. A Class esta sendo alimentada no 
       mtodo "GetDadosReducaoZ", para demonstrar como armazenar os dados nela.
       A implementao no mtodo "GetDadosUltimaReducaoZ", dever ser implementada
       em cada modelo, baseado no mtodo "GetDadosReducaoZ" que est implementado.
       por (Isaque Pinheiro)

Verso 0.8.9b  25/02/10
-- ACBrECF --
[*]    Aplicada otimizao no Fechamento de Cupom quando o ACBrECF est associado
       a geraao de Bobina grfica. (Por: Lampada)
       
Verso 0.8.9b  24/02/10
-- ACBrECFBematech --
[-]    Corrigido Bug no mtodo "CarregaAliquotas", que no carregava todas
       aliquotas se houvesse alguma cadastrada com o valor 0.
       Por:  cristian.custodio


Verso 0.8.9b  16/02/10
-- ACBrECFEpson --
[+]    Implementado mtodos, CarregaRelatoriosGerenciais e
        ProgramaRelatorioGerencial    Por: WagnerPV
[*]    Sobrecarga no mtodo AchaCNFDescricao para considerar a busca por
       "SUPRIMENTO" como "FUNDO DE TROCO" que j  pr-programado na Epson.
       Por: WagnerPV

-- ACBrECFBematech --
[-]    Corrigido Bug no mtodo "CortaPapel" (no funcionava)

Verso 0.8.9b  12/02/10
-- ACBrECF --
[-]    Modificado HTML em MemoTitulo para exibir corretamente centralizado
       titulo do documento

-- ACBrECFDaruma --
[*]    AbrePortaSerialDLL modificada, chave ControlePorta passa a gravar valor 0
       - Adicionada a gravao da chave ECF, Path

-- ACBrECFEpson --
[-]    Corrigido bug em GetTotalIsencao. por: Jos Nilton Pace
[-]    Corrigida ordem da deteco de Estado quando usando o Flag de Pagamento

-- ACBrECFFiscNET --
[-]    Corrigida ordem da deteco de Estado quando usando o Flag de Pagamento


Verso 0.8.9b  08/02/10
-- ACBrECFEpson --
[*]    Modificada deteco de estado do ECF Epson. Aps o envio do comando de
       SubtotalizaCupom, sem Desconto ou Acrescimo, o estado ainda permanecia em
       estVenda pois esse ECF no efetua a subtotalizao com valor 0.

Verso 0.8.9b  26/11/09
-- ACBrValidador --
[*]    Formatao de Inscrio Estadual modificada para inserir zeros a esquerda
       quando Documento estiver incompleto. (Por: Maico)
       http://acbr.sourceforge.net/mantis/view.php?id=421

-- ACBrUtil --
[+]    Adicionada:
       Procedure FindFiles( const FileMask : String; AStringList : TStrings;
                            IncludePath : Boolean = True ) ;

       
Verso 0.8.9b  24/11/09
-- ACBrECFDaruma --
[-]    Corrigida sintaxe dos comandos LerTotaisFormaPagamento e
       LerTotaisComprovanteNaoFiscal. Removido [CR] no final do comando.
       Que causavam Erro Estendido: (24) "Erro no verificador da comunicao"
       no modelo FS700             (Por DSA)

Verso 0.8.9b  23/11/09
-- ACBrETQ --
[+]    Implementado mtodo:        (Por DSA)
       CarregarImagem( MonoBMP : TBitmap; NomeImagem: String; Flipped : Boolean = True);

[+]    Adicionada Propriedade "LimparMemoria: Boolean". 
       Se For "True" (default), Limpa a memoria RAM a cada chamada do mtodo "Imprimir"

[+]    Implementado mtodo:        (Por Anderson Rogerio Bejatto)
       ImprimirImagem(MultiplicadorImagem, Linha, Coluna: Integer; NomeImagem: String);

[*]    Demo ETQTeste modificado para demonstrar os mtodos de Imagem
       
Verso 0.8.9b  16/11/09
-- ACBrECF --
[*]    Reviso das chamadas dos mtodos que usam a DLL, substituindo declaraes
       de "String" para "AnsiString" para compatibilizar com D2009 e Lazarus

-- ACBrECFDaruma --
[+]    Implementado EspelhoMFD_DLL e ArquivoMFD_DLL por COO e Data, usando carga
       dinmica da DLL    (Por: Luiz Arlindo e DSA)
       (Testes sem sucesso... Estou em contato com o suporte da Daruma (DSA))


Verso 0.8.9b  12/11/09
-- ACBrECF --
[+]    Adicionada a assinatura do mtodo:
       Procedure DescontoAcrescimoItemAnterior(
         ValorDescontoAcrescimo : Double = 0; DescontoAcrescimo : String = 'D' ) ;
       ( porm ainda no foi implementado em nenhuma Classe )
[*]    Calculo do Total do Item Vendido apresentado na bobina, usa TruncFix ao
       invez de Round(N,0) quando o ECF Truncar

-- ACBrECFBematech --
[+]    Implementado ArquivoMFD_DLL por COO usando carga dinmica da DLL, e um
       mecanismo para detectar a Data Inicial e Final equivalentes ao COO
       Inicial e Final     (Por: Luiz Arlindo)

-- ACBrECFFiscNET --
[-]    Corrigido problema quando informando parmetros String com Cararteres de
       controle suportados pelo ECF (Ex: /xB1)

-- ACBrRFD --
[*]    Calculo do Total do Item Vendido, usa TruncFix ao invez de Round(N,0)
       quando o ECF Truncar


Verso 0.8.9b  04/11/09
-- ACBrECFBematech --
[+]    Implementado ArquivoMFD_DLL por Periodo usando carga dinmica da DLL.
       No h funo disponvel na DLL para efetuar a Leitura por COO
       (Por: Luiz Arlindo e DSA)

Verso 0.8.9b  03/11/09
-- ACBrECF --
[*]    VendeItem: Implementado tratamento para uso de aliquotas do ISSQN
       SI = Isento ISSQN;
       SN = Nao Incidencia ISSQN;
       SF = Subst.Tributria ISSQN;

       Os Valores abaixo, quando informados, sero convertidos:
      { IS1, IS2 = "SI";   FS1, FS2 = "SF";   NS1, NS2 = "SN" }

      Classes revisadas: Bematech, Daruma, Sweda, Epson, FiscNET

[+]    Implementadas propriedades para Leitura de Totais por ISSQN
       ( Por: Marciano Lizzoni )
        Property TotalCancelamentosISSSQN         : Double ;
        Property TotalDescontosISSQN              : Double ;
        Property TotalAcrescimosISSQN             : Double ;
        Property TotalSubstituicaoTributariaISSQN : Double ;
        Property TotalNaoTributadoISSQN           : Double ;
        Property TotalIsencaoISSQN                : Double ;

-- ACBrECFFiscNet --
[-]    Correo do mtodo GetUsuarioAtual (por M.Ivan)
[+]    Implementao dos mtodos:         (por M.Ivan)
         GetTotalCancelamentosISSSQN, GetTotalDescontosISSQN,
         GetTotalAcrescimosISSQN, GetTotalSubstituicaoTributariaISSQN,
         GetTotalNaoTributadoISSQN, GetTotalIsencaoISSQN

-- ACBrECFDaruma --
[+]    Implementao dos mtodos:         (por M.Ivan)
         GetTotalCancelamentosISSSQN, GetTotalDescontosISSQN,
         GetTotalAcrescimosISSQN, GetTotalSubstituicaoTributariaISSQN,
         GetTotalNaoTributadoISSQN, GetTotalIsencaoISSQN

-- ACBrECFSweda --
[+]    Implementao dos mtodos:         (por Isaque Pinheiro)
         GetTotalCancelamentosISSSQN, GetTotalDescontosISSQN,
         GetTotalAcrescimosISSQN, GetTotalSubstituicaoTributariaISSQN,
         GetTotalNaoTributadoISSQN, GetTotalIsencaoISSQN

-- ACBrECFBematech --
[+]    Implementao dos mtodos:         (por Isaque Pinheiro)
         GetTotalCancelamentosISSSQN, GetTotalDescontosISSQN,
         GetTotalAcrescimosISSQN, GetTotalSubstituicaoTributariaISSQN,
         GetTotalNaoTributadoISSQN, GetTotalIsencaoISSQN

-- ACBrECFEpson --
[+]    Implementao dos mtodos:         (por: DSA)
         GetTotalCancelamentosISSSQN, GetTotalDescontosISSQN,
         GetTotalAcrescimosISSQN, GetTotalSubstituicaoTributariaISSQN,
         GetTotalNaoTributadoISSQN, GetTotalIsencaoISSQN

Verso 0.8.9b  29/10/09 (DSA)
--ACBrValidador --
[+]    Adicionado mtodo: FormatarIE( AString, UF : AnsiString ) : AnsiString ;
[*]    Erro de Validao de Documento vazio, retorna mensagem especificando o
       Nome do Tipo do Documento

-- ACBrECF --
[*]    Mtodo VendeItem, quando associado ao desenho de uma "Bobina", considera
       o Flag de Arredondamento do ECF para calcular o Total do Item

Verso 0.8.9b  27/10/09
-- ACBrECFNaoFiscal --
[+]    Adicionada vrias propriedades e mtodos (Por Ivan Moreira)
        NumGNF, NumGRG, NumCDC, NumCER, GrandeTotal, VendaBruta, UsuarioAtual,
        Cliche, DataHoraSB, SubModeloECF, TotalSubstituicaoTributaria,
        TotalNaoTributado, TotalIsencao
[+]    Alterao do tamanho do NumSerie.

Verso 0.8.9b  26/10/09
-- ACBrBAL --
[+]    Adicionado novo Modelo "balUrano" (por: Ivan Carlos Martello)

Verso 0.8.9b  23/10/09 (DSA)
[*]    Mtodo LeituraMFDSerialDLL renomeado para EspelhoMFD_DLL para melhor
       compreenso no PAF-ECF
[+]    Adicionado novos mtodos para obter o Arquivo MFD (Ato Cotepe 17/04)
    Procedure ArquivoMFD_DLL( DataInicial, DataFinal : TDateTime;
       NomeArquivo : String; Documentos : TACBrECFTipoDocumentoSet = [docTodos]  ) ; overload ;
    Procedure ArquivoMFD_DLL( COOInicial, COOFinal : Integer;
       NomeArquivo : String; Documentos : TACBrECFTipoDocumentoSet = [docTodos]  ) ; overload ;

-- ACBrECFEpson --
[+]    Implementado ArquivoMFD_DLL por Periodo e COO usando carga dinmica da DLL.
       Nos testes realizados no foi possivel efetuar a Leitura por COO (Erro 1)

-- ACBrECFSweda --
[+]    Implementado ArquivoMFD_DLL por Periodo e COO usando carga dinmica da DLL.
       (por Magno System)

Verso 0.8.9b  21/10/09
-- ACBrECF --
[+]    Adicionada a propriedade ACBrECF.DaraHoraSB : TDateTime   ( por Ivan Moreira )
       Retorma a Data e Hora do Software Bsico. Para facilitar no PAF-ECF.
	   Implementada para os Modelos: Sweda, Epson e Daruma;

[+]    Adicionada a propriedade ACBrECF.SubModeloECF : String   ( por Ivan Moreira )
       Retorma o Modelo do ECF. Para facilitar no PAF-ECF.
	   Implementada para os Modelos: Sweda, Bematech, Epson, FiscNet e Daruma;

-- ACBrECFBematech --
[+]    Implementado LeituraMFDSerialDLL por periodo e COO usando carga dinmica
        da DLL  (DSA)

-- ACBrECFSweda --
[*]    Adicionada Sleep(1000) no mtodo FechaCupom, Se o modelo for Matricial (JNP)
[+]    Implementado LeituraMFDSerialDLL por periodo e COO usando carga dinmica
        da DLL  (por Magno System)

Verso 0.8.9b  20/10/09 (DSA)
-- ACBrECF --
[+]    Implementados mtodos para permitir o uso da DLL do fabricante na Leitura da MFD
	   Implementao nas classes filhas *DEVE* usar carga dinmica da DLL, para no criar
	   dependncia Esttica da DLL do fabricante no componente.
	   (Veja o exemplo de implementao na Classe ACBrECFEpson.pas )
	   
    Procedure LeituraMFDSerialDLL( DataInicial, DataFinal : TDateTime;
       NomeArquivo : String; Documentos : TACBrECFTipoDocumentoSet = [docTodos]  ) ; overload ;
    Procedure LeituraMFDSerialDLL( COOInicial, COOFinal : Integer;
       NomeArquivo : String; Documentos : TACBrECFTipoDocumentoSet = [docTodos]  ) ; overload ;

-- ACBrECFBematech --
[-]    Corrigido calculo do intervalo tempo de Espera em LeituraMFDSerial por COO

-- ACBrECFEpson --
[+]    Implementado LeituraMFDSerialDLL por periodo e COO usando carga dinmica da DLL

-- ECFTeste --
[+]    Adicionado opo no Menu "Relatrio -> Leitura MFD Serial DLL"

-- ACBrCalculadora --
[*]    Criao do Form do Componente modificada para usar Owner como Application ao
       invez de Nil
   

Verso 0.8.9b  17/10/09 (DSA)
--ACBrValidador --
[*]    ACBrValidador.MsgErro agora usa ACBrStr() para converso de UTF8 se
       necessrio

-- Lazarus --
[+]    Incluso de Novo Form LCalculadora.pas especfico para Lazarus, usando
       OptimalFill no Display
[*]    Ajuste no nmero de verso do Package

-- ACBrUtil --
[*]    Adicionado Parmetro "RaiseExceptionOnFail" na Procedure
       DeleteFiles(const FileMask: String; RaiseExceptionOnFail : Boolean = True)  ;
       Se for informado como False, no ir disparar Exception quando no conseguir
       apagar determinado arquivo, e continuar o Loop para apagar demais arquivos
       correpondentes a "FileMask". Se omitido, assume True (default)

-- ACBrECFSweda --
[-]    Corrigido Bug na deteco do Status do ECF, quando o ECF sinalizava Status = 'E'
       www.forumweb.com.br/foruns/index.php?/topic/78701-ecf-sweda-st120-retornando-estdesconhecido/	
 	   
Verso 0.8.9b  15/10/09 (DSA)
-- ACBrECF --
[*]    Modificada a assinatura dos comandos:
       LeituraMFDSerial, LeituraMemoriaFiscalSerial, LeituraXSerial
       removendo a declarao "var" do parmetro Linhas (por ser desnecessrio)

-- ACBrUtil --
[+]    Adicionada function RemoveStrings(const AText: AnsiString;
            StringsToRemove: array of AnsiString): AnsiString;
       Remove todas ocorrencias de String do Array <StringsToRemove> da String
       <AText> retornando a String alterada

-- ACBrECFBematech --
[-]    Corrigido Bug de "espera inifinita" quando aguardando retorno de comandos
       de Leitura (Ex: LeituraMFD), em que o ECF respondeu com "Erro"

-- ACBrECFDaruma --
[*]    Melhorada Rotina de Limpeza dos retorno de comandos de Leitura
       (Ex: LeituraMFD)
[-]    Corrigido Bug na rotina de Criao de Arquivo com conteudo do Retorno de
       Leituras, que em algumas ocasies era Truncado

-- ACBrECFFiscNet --
[*]    Otimizao da Rotina de Limpeza dos retorno de comandos de Leitura
[-]    Corrigido Bug nos Retornos de Leitura, em que o arquivo era "deslocado",
       perdendo o lay-out original 


Verso 0.8.8b  12/10/09
-- ACBrECF --
[-]    No ECF da Daruma ao se comandar a impresso da Leitura da Memria Fiscal o
       componete estav invertendo o metodo simplificado pelo completo. (por Ivan Moreira)

Verso 0.8.8b  10/10/09
-- ACBrECF --
[+]    Adicionada a propriedade ACBrECF.UsuarioAtual : String   ( por Ivan Moreira )
       Retorma o usuario atual da Memria Fiscal
	   Implementada para os Modelos: Sweda, Bematech, Epson, FiscNet e Daruma;

-- ACBrECFEpson --
[*]    Modificao na rotina VerificaFimLeitura, para tratar corretamente Respostas 
       Fora da Sequencia, e Respostas com o CheckSum invlido.  (por Daniel Simes)

-- ACBrECFDaruma --
[+]    Implementado mtodo ACBrECF.IM = Retorna a Inscrio Municipal; 
[+]    Implementado mtodo ACBrECF.Cliche = Retorna o Cabealho; 
[*]    ECF.ModeloStr = Esta retornado 'Daruma "Modelo FS-600" ' em vez s de 'Daruma'.
	   ( por Ivan Moreira )

-- ACBrECFSweda -- 
       Implementada as rotinas:           ( por Ivan Moreira )
[+]    ECF.LeituraMFDSerial(dtInicial,dtFinal) = Retorna MFD por Data;
[+]    ECF.LeituraMFDSerial(COOInicial,COOFinal) = Retorna MFD por COO;
 	   
Verso 0.8.8b  08/10/09
-- ACBr --
[*]    Todas as Saidas de Mensagem do ACBr, atravs de Exceptions ou MessageDlg
       foram revisadas para converter a saida para UTF8 quando o Compilador
       suportar UNICODE.

-- ACBrUtil --
[+]    Adicionada: function ACBrStr( AString : AnsiString ) : String ;
       Todos os Fontes do ACBr usam Encoding CP1252, para manter compatibilidade
       com D5 a D2007, Porm D2009 e superiores e Lazarus0.9.27 e acima usam UTF8.
       Essa funo converte a "AString" para de ANSI, para UTF8, apenas se o
       sistema usar UNICODE

Verso 0.8.8b  02/10/09
-- ACBrECF --
[-]    Novo mecanismo usando BlockInput no liberava Mouse/Teclado durante a pergunta de ReTentar	

-- ACBrECFCalculadora --
[*]    Nova Propriedade BorderStyle, para permitir ajustar a Borda da Calculadora
[*]	   Form melhorado para Lazarus, usando OptimalFill no Label do Display de Nmeros

Verso 0.8.8b  30/09/09
-- ACBrECF --
[+]    Sobrecarga nos mtodos abaixo para permitir informa "NomeArquivo: String"
       ao inves de um StringList.

       Procedure LeituraXSerial( NomeArquivo : String  ); overload ;
       Procedure LeituraMemoriaFiscalSerial( DataInicial, DataFinal : TDateTime;
          NomeArquivo : String; Simplificada : Boolean = False ) ; overload ;
       Procedure LeituraMemoriaFiscalSerial( ReducaoInicial, ReducaoFinal : Integer;
          NomeArquivo : String; Simplificada : Boolean = False ) ; overload ;
       Procedure LeituraMFDSerial( DataInicial, DataFinal : TDateTime;
          NomeArquivo : String; Documentos : TACBrECFTipoDocumentoSet = [docTodos]  ) ; overload ;
       Procedure LeituraMFDSerial( COOInicial, COOFinal : Integer;
          NomeArquivo : String; Documentos : TACBrECFTipoDocumentoSet = [docTodos]  ) ; overload ;

-- ACBrECFDaruma --
[*]    Adicionado mecanismo de "limpeza" de cdigo de controle de Impressao em
       captura de Documentos pela Serial
       
Verso 0.8.8b  28/09/09
 
[*]  Diversas alteraes efetuadas por: Ivan Moreira
     - ECFs : Sweda, Bematech, Epson, FiscNet e NaoFiscal
       Rotinas: ECF.IM = Retorna a Inscrio Municipal; 
	   ECF.Cliche = Retorna o Cabealho;
 
	 - ECFs: NaoFiscal
       Rotinas: ECF.CNPJ = Retorna CNPJ; ECF.PAF = Retorna Linha PAF;
 
	 - ECFs: Bematech
		Rotinas: ECF.LeituraMFDSerial(dtInicial,dtFinal) = Retorna MFD por Data; 
		ECF.LeituraMFDSerial(COOInicial,COOFinal) = Retorna MFD por COO;
 
08/02/09
[-] Correo na validao de CEPs de MG e ES (Daniel Simoes de Almeida)

21/12/08
-- ACBrValidador -- 
[-] CNPJ 00000000000000 era aceito como vlido (Daniel Simoes de Almeida)

Verso 0.8.8b  01/12/08
-- ACBrConsts --
[+]    Mensagens de Erro e Alerta de ACBrECF centralizadas em ACBrConsts.pas,
       por: Joo Carvalho

-- ACBrECF --
[*]    Adicionado Parmetro "Simplificada : Boolean = False" nos mtodos:
       LeituraMemoriaFiscal e LeituraMemoriaFiscalSerial

-- ACBrECFQuattro --
[+]    Adicionado varios metodos e propriedades, por: Joao Victor Maia Fernandes

-- ACBrECFYanco --
[+]    Adicionado varios metodos e propriedades, por: Sauli Bueno

-- ACBrUtil --
[*]    Funo IntToStrZero modificada para aceitar Int64. Esse problema
       poderia causar "erro de converso" na criao do arquivo ACBrRFD

29/10/08
[-] Inscrio Estadual de AL para permitir o digito 1 no tipo do contribuinte
(Jhony Alceu Pereira)

Verso 0.8.7b  14/04/08

-- ECFTeste --
[+]   Adicionada configurao das caracteristicas da Porta Serial
      (Velocidade, bit de Parada, paridade, etc)
[*]   Nova versao do ECFTeste convertida para Lazarus (Wagner Leandro)

-- ACBrECF --
[+]    Adicionado mtodo IdentificaOperador(Nome: String);
       - Ligado a propriedade Operador. Todos os modelos de ECF revisados com a
         possibilidade de informar o Operador ao ECF
[+]    Adicionado mtodo: CortaPapel( CorteParcial : Boolean = false) ;
[+]    Adicionado mtodo: Sangria( const Valor: Double; Obs: String;
         DescricaoCNF: String = 'SANGRIA'; DescricaoFPG: String = 'DINHEIRO')
[+]    Adicionado mtodo: Suprimento( const Valor: Double; Obs: String;
         DescricaoCNF: String = 'SUPRIMENTO'; DescricaoFPG: String = 'DINHEIRO')
[*]    Metodo VendeItem modificado, adicionado parametro:
         DescontoAcrescimo : String = 'D' que permite definir se o Valor
         informado no parametro "ValorDescontoAcrescimo"  Desconto "D" ou
         Acrscimo "A".  Se nao informado, assume o Default = 'D'
         - Todos os modelos revisados para permitir Acrescimo na Venda de Item
           quando SW.Bsico do ECF possuir esse comando
[+]    Adicionada a propriedade: MsgTrabalhando = "Impressora est trabalhando"
[*]    Modificado mecanismo TimeOut em LeResposta.
       - LeResposta detecta quando o ECF est enviando dados pela serial e com
         isso NAO inicia a contagem regressiva de TimeOut, e exibe o texto de
         "MsgTrabalhando"

-- ACBrFiscNet --
[*]   Compatibilizada para trabalhar com a TermoPrinter (Fabio Farias)

-- ACBrECFEpson --
[+]   Novo modelo de ECF implementado Epson

-- ACBrECFDaruma --
[*]  Cancelamento de Cupom permite cancelar CCD se imediatemante apos o cupom
     (Andre Bohn)
[-]  Corrigido Bug na Leitura dos Totais de Pagamentos na FS600 (Andre Bohn)
[+]  Implementado a Leitura dos Totais de CNFs para FS600 (Andre Bohn)

30/08/07
-- ACBrValidador --
[-] Inscrio Estadual de TO corrigida para suportar numeros com 10 digitos
(Carlos do Nascimento Filho)

Verso 0.8.6b  15/06/07

-- ACBrETQ --
[+]   - Novo Componente, para facilitar a Impresso de Etiquetas em Impressoras
        termicas, compatveis com a Linguagem PPLA
        (por: Andrews R Bejatto/ Anderson R Bejatto)
        
-- ACBr_BCB6.bpk --
[*]   Criado novo package para compatibilizar o projeto com o C++ Builder 6
      - Compatibilidade feita por: Thiago Delgado Pinto
[*]   Vrios fontes do projeto foram revisados para permitir a compilao
      condicional no C++ Builder, trocando a diretiva {$IFDEF Delphi6_UP} por
      {$IFDEF COMPILER6_UP}.

-- Lazarus --
[+]   Todos os Demos do projeto agora tambm esto disponveis no Lazarus
      (convertido por: Wagner Leandro Bueno Angelo)

-- Demos --
[*]   Diretorio dos Demos melhor organizado, com a criao de uma sub-pasta para
      cada Demo.

[+]   Projeto Demo "ECFTeste" (ACBrECF) remodelado para exbir o uso de
      "MemoBobina" e "OnBobinaAdicionaLinhas.
      - Verses VCL, CLX e Lazarus foram modificadas

-- ACBrECF --
[+]   Adicionada a propriedade "ArqLOG : String"
      - Se algum nome de aquivo for especificado nessa propriedade, todos os
        comandos Enviados e Respostas do ECF sero gravadas neste arquivo TXT
      - Ateno !!
        - Ou uso de LOG pode comprometer a performace do programa.
          (use apenas para debugar)
        - Dados sigilosos, como nmero de carto de crdito impresso no TEF,
          podem ficar registrados no LOG

[+]   Adicionada a propriedade "MemoBobina : TMemo"
      - Se associado algum componente "Memo" a essa propriedade o ACBrECF
        "desenhar" uma copia da Saida do Cupom no componente Memo.

[+]   Adicionado evento "OnBobinaAdicionaLinhas"
      - Evento  executado sempre que uma nova linha  adicionada no "MemoBobina"
        - Util para desenho de Cupons em formato HTML
      - Para visualizar o Cupom em HTML utilize controles visuais como:
        TWebBrowser (VCL) TTextViewer (CLX) ou  TIpHTMLPanel (Lazarus)
        - Veja exemplos no Projeto "ECFTeste" (em Demos)

[+]   Adicionada a propriedade "MemoParams : TStrings"
      - Usada para configurar o LayOut de desenho do cupom.
      - Permite sintaxe em HTML.
      - Utillizada apenas quando usando "MemoBobina" ou "OnBobinaAdicionaLinhas"

[+]   Adicionado parametro "TipoDescontoAcrescimo : String = '%'" no mtodo
      "VendeItem".
      - Se esse parametro for omitido, assume '%' (desconto em Percentagem),
      - Qualquer outro caracter diferente de '%', assume que o Desconto
        informado no parametro "DescontoPorc"  em Valor

[*]   "ArredondaPorQtd" no ser executado caso o ValorTotal com a Qtd acrescida
      fique superior ao Valor Arredondado pretendido. Isso pode ocorrer se o
      Preo Unitrio  grande... nesses casos no h como ajustar... :-(

-- ACBrECFBematech --
[-]   Corrigido Bug na abertura de Cupom Fiscal com CNPJ na MP20

-- ACBrECFDaruma --
[-]   Corrigido Venda de Item com Qtd de 3 decimais (por Maicon da Silva)
[-]   Corrigido Carregamento de Formas de Pagamento na MFD
      (retornava posies no cadastradas)
[*]   Melhorada Verificao de Fim da Impresso na MFD
[*]   Corrigida Leitura da palavra de Status na MFD (GetEstado)
[-]   Corrigida deteco do estado estRequerX na MFD
[*]   Corrigido Retorno no Numero de Serie na MFD
[*]   Impressao de Relatrio Gerencial e Vinculado na MFD, otimizada para enviar
      vrias linhas simultaneamente (muito mais rpido)
[-]   Corrigido bug na leitura do CRO

-- ACBrECFFiscNET --
[-]   Corrigido espacejamento de "PulaLinhas" ( considerando 1 linha = 30 dots )
[-]   Corrigido BUG em Mtodo "CorrigeEstadoErro", que sempre causava o Reinicio
      do ECF
[*]   Mtodo "AbreRelatorioGerencial" modificado para cadastrar o Relatrio
      Gerencial  indice = 0 caso ele ainda no exista
[-]   Mtodo "VendeItem" gerava exceo quando Desconto era informado
[-]   Mtodo "LinhaRelatorioGerencial" nao imprimir linhas vazias e em textos
      maiores que 492 caracteres poderia haver quebra do lay-out de impressao

-- ACBrECFSweda --
[-]   Corrigido bug nos Descontos de "VendeItem" e "SubtotalizaCupom" em alguns
      ECFs NAO MFD ( matriciais linha 7000 )  (Bug Report por: Ederson Selvati)
[-]   Corrigido bug no EfetuaPagamento dos modelos 'C' e 'B' em FPG com flag
      de Vinculado ativado
[*]   Aumentado o TimeOut da Reduao Z para (150 sec)
[*]   Ignorado Flag "SLIP" em modelo 'B' na verificaao de erros de "EnviaComando"
[-]   Corrigida a abertura da Gaveta de Dinheiro nos ECFs MFD
[*]   Corrigido o TimeOut da Leitura da Memoria Fiscal no modelo 'B'
[-]   Corrigido bug em "FechaRelatorio" no modelo 'B'
[*]   Ativada a Impressao da palavra "SubTotal" na subtotalizao do Cupom

-- ACBrECFNaoFiscal --
[-]   Corrigido Bug no Cancelamento de Item com Desconto (por Marcos Agostini)

-- ACBrECFClass --
[-]   Corrigido Bug em DoOnMsgRetentar, Resposta com sinal invertido
      (por J. Lus Schiavo)

-- ACBrCMC7 --
[*]   Calculo de CMC7 compatiblizado com o Banrisul, por Diogo Augusto Pereira

-- ACBrBALFilizola --
[*]   Modelo balFilizola compatibilizado com a linha "CS"...
      (por:  Juliano Pereira dos Santos)

-- ACBrCHQ --
[-]   Corrigido Problemas de FreeNotification com a propriedade "ECF" em Tempo
      de Design

-- ACBrGAV --
[-]   Corrigido Problemas de FreeNotification com a propriedade "ECF" em Tempo
      de Design

-- ACBrExtenso --
[+]   Adicionada a propriedade Formato: TACBrExtensoFormato (default extPadrao)
        extPadrao -> 15,10 - Quinze Reais e Dez Centavos
        extDolar  -> 15,10 - Dolares Americanos Quinze com 010/100

-- ACBrCalculadora --
[+]   Adicionada a propriedade "CorForm" : TColor (por: Nei Jos Van Lare Junior)

17/03/07
-- ACBrGIF --



Verso 0.8.5b  02/12/06
[+] Incluso do componente ACBrGIF (Daniel Simes)

-- ACBr --
[+]   Modo CONSOLE. Todos os componentes e Units do ACBr foram compatibilizadas
      para permitir a construo de aplicaes em MODO CONSOLE
      - IMPORTANTE: Quando alternar na compilao entre aplicaes no Modo
        CONSOLE e DESKTOP, SEMPRE execute: Project -> Build All

-- ACBrECF --
[+]   Adicionado propriedade: "GavetaSinalInvertido" : Boolean default False
      - til quando a leitura do Retorno da propriedade "GavetaAberta" est
        invertido... Isso ocorre em alguns casos, devido a diferena da pinagem
        dos diversos modelos de Gavetas de dinheiro

[+]   Adicionado novo evento "OnMsgRetentar". Que ser disparado quando a
      propriedade "Retentar" estiver ativa (True) e sempre que alguma msg do
      tipo "Deseja tentar Novamente ?" precise ser exibida.
      - Se o evento estiver programado o ACBrECF no exibe nenhuma Mensagem ou
        Dialogo. Se o evento NAO estiver programado,  exibida a Mensagem padro

[+]   Adicionada Propriedade "IntervaloAposComando" : Integer.  (default 100)
      - Essa propriedade permite definir um pequeno intervalo em Milesegundos
        aps a execuo de cada comando. Um valor menor pode tornar a
        comunicao com o ECF mais rpida porm pode causar problemas de comuni-
        cao em alguns modelos/verses de ECF... Use valores entre 1 e 100

[*]   Mtodo: "ImpactoAgulhas" modificado. Removido o MessageDLG, agora o mtodo
      recebe um parmetro:  ( NivelForca : Integer = 2), onde: 1-Fraco, 2-Normal
      , 3-Forte

[*]   Mtodo "MudaHorarioVerao", modificado. Removido MessageDLG. Se o mtodo
      for chamado sem parmetros ele tentar inverter o estado de HorarioVerao

[-]   Corrigido Bug no mtodo "FormMsgDoProcedure" (usado p/ bloqueio do teclado)
      A pilha de retorno das Excees no era executada corretamente
      - Em algumas situaes, ex: durante a impresso das Linhas do Relatrio
        Gerencial, caso houvesse alguma exceo durante a impresso o bloco
        "Except" programado pelo usurio no era executado.

[-]   Corrigido Bug em ArredondaPorQtd. Em algumas combinaes de valores e Qtd
      o ArredondaPorQtd falhava ao calcular o acrscimo na Qtd.

[*]   Mtodo VendeItem modificado para permitir Alquotas como ndice mesmo nos
      ECFs onde a Alquota j possui a Letra "T" no inicio. Exemplo. Na Daruma,
      a Alquota "TA" pode ser informada como: "TTA" ou "TA" para o mtodo
      VendeItem

[*]   Propriedade "NumSerie" no mais usa valor em cache. Sempre que houver uma
      leitura a essa propriedade, haver comunicao com o ECF.
      ( Exigncia do Fisco de Minas Gerais )

[+]   Adicionada as propriedades ReadOnly  "MFD"  e "Termica"  que so ativadas
      de acordo com o modelo de ECF Utilizado.

[+]   Adicionada as propriedades "DecimaisPreco" e "DecimaisQtd"

-- ACBrECFFiscNET --
[+]   Novo modelo de ECF implementado FiscNET (ZPM), compatvel com vrios ECFs
      MFDs que usam esse chip-set, como: Elgin MFD, Urano MFD, DataRegis MFD,
      Olivetti MFD, ZPM, e outros

-- ACBrECFDaruma --
[+]   Finalmente adicionada a compatibilidade com o ECF FS600 MFD
      ( com a ajuda de Juliano Pereira dos Santos )  
[-]   Corrigido alguns bugs na compatibilidade com o modelo FS 2000 em:
      GetEstado, VerificaFimImpressao, FechaRelatorio, GetGavetaAberta,
      GetPoucoPapel, GetHorarioVerao e GetArredonda
[-]   Corrigido bug na Impresso de Linhas do Vinculado e Gerencial. Bug
      introduzido na verso 0.8.4b. (tentativa de otimizar a impresso nas MFDs)
[+]   Adicionada a Impressao de Cheques na FS2000.
[-]   Corrigido o mtodo CarregaFormasPagamento na FS2000
[-]   Corrigido o retorno do contedo de "ComprovantesNaoFiscais" na FS345
[+]   Adicionada propriedade interna "ComprovantesNaoFiscaisVinculado" (somente
      na Classe Daruma)

-- ACBrECFBematech --
[-]   Aumentado o TimeOut dos comandos "LeituraX" e "AbreRelatorioGerencial"
[-]   Corrigido Bug no ECF MP40-FI II, esse modelo tem apenas 40 colunas e no
      48 como nos demais modelos... Agora o modelo  detectado e a propriedade
      "Colunas" ajustada corretamente.

-- ACBrECFYanco --
[*]   Diversos mtodos implementados... Agora a classe da Yanco est operacional
      ( por: Carlos do Nascimento Filho )

-- ACBrECFMecaf --
[*]   Diversos mtodos que usam campo de "Texto livre" foram modificados para
      filtrar os caracteres acentuados, pois a Mecaf no executa o comando se
      houver caracteres acentuados

-- ACBrDIS --
[*]    Novo modelo de Display de Teclado implementado "disKeytecTeclado"
       compatvel com os displays de teclado das Marcas "KeyTec" e "Fourth"
       ( por: Fabio Farias )

-- ACBrLCB --
[*]   Modificado mecanismo de leitura, para evitar a leitura de cdigos
      incompletos.
      - Se a propriedade SUFIXO for VAZIA.  TUDO que estiver disponvel no
        buffer serial no momento do evento, ser lido e retornado
      -  Se SUFIXO NAO for VAZIO. Apenas l os dados da serial SE e AT
         encontrar o Sufixo.
         - Se houver dados alem do Sufixo, deixa o restante no buffer serial
           para leitura no prximo evento (Mais de 1 cdigo no buffer)
         - Se o SUFIXO NAO for encontrado no Buffer da Serial NADA ser
           lido. Pois nesse caso, provavelmente o leitor ainda est enviando o
           cdigo e o Buffer da Serial est INCOMPLETO. O cdigo completo ser
           lido no prximo evento...

[*]   Demo do ACBrLCB, LCBTeste.dpr e QLCBTeste.dpr modificados para permitir
      configurar as propriedades da Porta Serial     (por: Waldir Paim)

-- ACBrCMC7 --
[-]   Corrigido Bug no calculo do digito Verificador 2
[+]   Adicionado Programa Demo para o componente ACBrCMC7   (CMC7Teste.dpr)
      ( por: Andr Ferreira de Moraes )

-- ACBrCHQUrano --
[*]   Novo modelo de impressora de Cheques compatibilizado com o ACBrCHQ.
      A Urano UR1000. (Usado o Protocolo "Genrico 2" na impresso de cheques)

-- ACBrUtil --
[+]   Adicionada as funes: "BinToInt" e "IntToBin" (http://delphi.about.com)
      - Converte Strings de Binrios para Inteiro e vice-versa.
[*]   Funo "TestBit" modificada para permitir Inteiros de 16 bits

-- ACBrExtenso --
[+]   Adicionada a propriedade "ZeroAEsquerda" : Boolean (default true)
        - Quando True , o valor: 0,21 = Zero Reais e Vinte e Um Centavos
        - Quando False, o valor: 0,21 = Vinte e Um Centavos

-- ACBrFala --
[-]   Corrigido Bug na fala de Valores com apenas centavos (removido Zero Reais)

-- SynaSer --
[*]  Fontes da Classe SynaSer atualizados para a verso: 007.000.001

29/05/06
-- ACBrCMC7 --
[-] Calculo de CMC7 compatiblizado com o Banrisul (Diogo Augusto Pereira)


Verso 0.8.4b  25/05/06

-- ACBr_LCL.lpk --
[*]   Package do Lazarus corrigido para instalar corretamente... Testado no
      Lazarus 0.9.12 e FreePascal 2.0.2 (verses Windows e Linux)
[+]   Nova pasta criada para os Demos na verso Lazarus.
      - Demo "ECFTeste.dpr" convertido para Lazarus.

-- ACBrFala --
[+]   Novo componente ACBrFala. Processa todas as palavras de uma String,
      procurando por arquivos de Som correspondente a cada palavra.
      - Permite informar Valores (Double) que so traduzidos para Extenso.
      - Os arquivos de som podem estar em um Recurso (.RES / .LRS) ou em um
      diretrio.  Veja a pasta  \ACBr\source\Pascal\ACBrFalaWaves que contm
      exemplos de sons e arquivos de recurso para falar valores por Extenso
      (componente inicial, "FalaValor" escrito por Vinicius de Oliveira)

-- ACBrCMC7 --
[+]   Novo componente ACBrCMC7, que permite processar a Banda Magntica dos
      Cheques, Validando e convertendo de CMC7 para Banco, Agencia, Conta e
      vice-versa... (em desenvolvimento)          (por Andr Ferreira de Moraes)

-- ACBrECF --
[-]  Mtodo "VerificaFimImpressao" poderia disparar exceo com ECF off-line
     (Bug reportado por: Adriano Alves Dornelas)
[*]  Diminudo o tempo de vrias "pausas" (Sleeps) entre as rotinas de envio
     e recepo de dados, a fim de agilizar a comunicao... (experimental)
[*]  Adicionada sobrecarga ao mtodo MudaHorarioVerao.
     Procedure MudaHorarioVerao( EHorarioVerao : Boolean ) ;
     - Nesse novo mtodo no ser aberta nenhuma janela ShowModal
[*]  Mtodos "CarregaFormasPagamento" e "CarregaComprovantesNaoFiscais" sempre
     retornavam as Descries em maisculas... corrigido.
[*]  Mtodos "ProgramaFormaPagamento" e "ProgramaComprovanteNaoFiscais" sempre
     cadastravam as Descries em maisculas... corrigido.
[*]  Mtodos "LinhaRelatorioGerencial" e "LinhaCupomVinculado" agora permitem
     informar vrias linhas separadas por #10 ou #13+#10
     (til para agilizar a impresso desses documentos em alguns ECFs Trmicos)
[+]  Adicionado mtodo: PulaLinhas( NumLinhas : Integer = 0 ) ;

-- ACBrECFClass --
[*]  Mtodos "ListaRelatorioGerencial" e "ListaCupomVinculado" abstraidos
     pela classe TACBrECFClass... eliminando vrias linhas de cdigo nas
     classes filhas

-- ACBrECFQuattro --
[+]   Novo modelo de ECF implementado: "Quattro" graas ao emprstimo de um
      modelo (Easy IIF) para testes, concedido pela Quattro Eletrnica Ltda.
      (por Daniel Simes)

-- ACBrECFICash --
[+]   Iniciado o desenvolvimento do modelo ECF IChash    (por Rodrigo Frhwirth)

-- ACBrECFBematech --
[*]   Melhorado suporte a VendaItem em MFD, usando o novo comando "63"
      (antes no imprimia a Unidade)
[*]   Mtodo AchaFPGDescricao no tanta programar a Forma de Pagamento
      dinamicamente caso ela no seja encontrada quando o modelo de ECF for MFD
      (MP25/MPTH), pois nesses modelos as Formas de pagamento no so zeradas
      aps a Reduo Z
[*]   Mtodo ProgramaFormaPagamento no mais modifica a Descrio da Forma de
      Pagamento para 1a Maiscula e o restante em Minsculas, e sem espaos...
      Essas recomendaes eram do suporte da Bematech mas foi removida a pedido
      de vrios usurios.
[+]   Adicionada a propriedade Publica "IsTH", que retorna Verdadeiro se o ECF
      for Trmico (impresso mais rpida)
[*]   Se o ECF for Trmico imprime todas as Linhas dos mtodos "CupomVinculado"
      e "RelatorioGerencial" em apenas um comando, (muito mais rpido)

-- ACBrECFDataregis --
[*]   Corrigido Bug na Venda de Item introduzido com a adio do Item Vendido
      na verso 0.8.3b (Imprime o Item Vendido porm sem espao entre o cdigo)
      - Bug Reportado por Fabio Farias
[*]   Mtodo Cancela cupom detecta o estado do ECF para permitir cancelamento
      com o Cupom aberto (por Anderson Rogerio Bejatto)
[*]   Modificado mecanismo de Gravao e Leitura de memria auxiliar (INI) para
      ficar mais rpida a rotina de venda (por Anderson Rogerio Bejatto)
[-]   Corrigido Bug na leitura de modelos de Cheques (por Airton Stodulski)
[-]   No reconhecia corretamente todas as verses de .03 e .05
      (por Airton Stodulski)
[*]   Inserido suporte a Venda de Item com 3 casas decimais
[*]   Mtodo VendeItem usar o Arredondamento sempre que necessrio
[-]   Corrigido bug em pulos de Linha em "ListaRelatorioGerencial" e
      "ListaCupomVinculado"
[-]   "SubTotal", no considerava Desconto / Acrscimo pendente informado em
      "SubtotalizaCupom"
[*]   Acerto das cordenadas para Impresso de Cheques
      (por Anderson Rogerio Bejatto)

-- ACBrECFSweda --
[-]   Corrigido BUG em VendeItem quando havia desconto  (por Ederson Selvati)
[*]   Melhorado o Suporte a linha ST (MFD), graas ao emprstimo de um modelo
      ST100, por "Mauro Sano" da Sweda
[*]   Descrio extra na linha ST pode atingir at 209 caracteres e no apenas
      40... corrigido.
[-]   Corrigido bugs na deteco da Verso e Modelo do ECF
[-]   Corrigido Bug de TimeOut durante a Reduo Z e Abertura de Cupom Fiscal
      Vinculado em ECFs Matriciais (9000, 7000)
[-]   Corrigido Bug em SubTotalizaCupom na linha 9000. Se houvesse Desconto o
      comando no era processado.
[-]   ProgramaFormaPagamento e ProgramaComprovanteNaoFiscal ajustados para a
      linha ST (MFD)
[-]   Corrigido Bug no tratamento de Pouco Papel e Fim de Papel, caso o Item
      vendido no seja impresso, uma exceo ser gerada.

-- ACBrECFDaruma --
[+]   Adicionada a compatibilidade com o modelo ECF FS2000
      (por: Carlos do Nascimento Filho)
[-]   Corrigido Bug em CarregaFormasPagamento e CarregaComprovantesNaoFiscais.
      posies livres (no programadas) eram lidas como vlidas
[-]   Corrigido Bugs em ProgramaFormaPagamento.
      - Deteco automtica do prximo ndice livre falhava
      - Programao de FPG com Vinculado no causava a programao de um
        Comprovante No Fiscal (equalizao)
[-]   ProgramaComprovanteNaoFiscal, modificada para no permitir cadastrar j
      existente
[*]   Mtodo interno "VerificaFimImpressao" otimizado para usar os flags da
      "Palavra de Status" , pois o mtodo antigo falhava algumas vezes
[-]   Corrigido Bugs de TimeOut em vrios comandos como "VendeItem",
      "RelatorioGerencial", etc
[-]   Corrigido Bug em "TotalPago", que retornava o Valor de "SubTotal" mesmo
      antes do cupom ser SubTotalizado         (bug reportado por Fabio Farias)

-- ACBrECFSchalter --
[-]   Corrigido Bug em Mtodo "ZeraVinculados", que no cancelava o Vinculo "0"
      (por Alan Lucas)

-- ACBrECFNaoFiscal --
[-]   Usando Arquivos ou portas paralelas, em algumas ocasies ocorria erro de
      I/O ao Ativar / Desativar o componente    (bug reportado por Fabio Farias)

-- ACBrUtil --
[*]   Funes StringToAsc e AscToSTring movidas de ACBrECFNaoFiscal.pas para
      ACBrUtil.pas
[+]   Adicionada a Procedure: CopyFilesToDir(FileMask: string; ToDirName :
        String; const ForceDirectory : Boolean = False)  ;
      Copia todos os arquivos especificados na mascara <FileMask> para o
      diretrio <ToDirName> Gera Exceo se no conseguir copiar algum dos arquivos.
[+]   Adicionada funo   FunctionDetect (LibName, FuncName: String;
                                         var LibPointer: Pointer): boolean;
      - til para carregar funes de DLL / SO dinamicamente                                    
[*]   Funes InPort e OutPort agora suportam a DLL inpout32.dll, que permite
      acesso direto a portas no XP /NT / 98  http://www.logix4u.net/inpout32.htm
[+]   Adicionada as funes:
      StringToDateTime( DateTimeString : String ) : TDateTime ;
      StringToDateTimeDef( DateTimeString : String ; DefaultValue : TDateTime )
        : TDateTime ;
      - Para evitar problemas com as diferenas entre o Separador de Data (/)
        entre os diversos S.O.  
[+]   Adicionada a funo:  PosLast(const SubStr, S: string): Integer;
        Retorna a ltima posio de "SubStr" dentro da String "S", ou 0 se no
        encontrar a "SubStr" dentro de "S"

-- ACBrValidador --
[-]   Inscrio Estadual de "AL" aparentemente tambm aceita o numero 6 no 3
      dgito, apesar do site do sintegra informar o contrrio... Corrigido

-- ACBr.INC --
[*]   Adicionada compatibilidade com o Delphi 2006     (por  Luciano Donato)

-- ACBrECFClass.pas --
[*]   Vrias modificaes nos mtodos LeResposta ocorreram para compatibilizar o
      ACBr com o Lazarus. O mecanismo de Threads foi substituido por algo mais
      simples, usando um Simples TTimer...
      - O funcionamento de BloqueiaTeclado continua usando a "tcnica" de uma
        janela ShowModal

-- ACBrBase.pas --
[*]   Permite modificar alguns parmetros da porta serial mesmo com ela aberta.
[-]   Modificaes em run-time nos parmetros da serial no eram efetivadas na
      SynaSer

-- SynaSer --
[*]  Fontes da Classe SynaSer atualizados para a verso: 006.003.007

Verso 0.8.3b  20/10/05
-- ACBrTER --
[+]   Criado novo componente para controle de MicroTerminais. Com o ACBrTER fica
      fcil interagir com Microterminais, enviando linhas para o display e
      recebendo as teclas pressionadas pelos usurios em um evento.
      - Implementado inicialmente para o modelo:  Wilbor
      ( Componente criado por: Gabriel Rodrigo Frones )

-- ACBrTroco --
[+]   Criado um novo componente para calculo detalhado de Troco, informando as
      Cdulas e moedas necessrias. Permite editar a lista de Cdulas/Moedas
      ( Componente e Programa Demo enviado por: Anderson Rogrio Bejatto )

-- ACBrBAL --
[+]   Criado novo componente para interao com Balanas Eletrnicas.
      Atravs do mtodo "LePeso : Double"  possvel obter o peso aferido pela
      Balana... Tambm h a possibilidade de monitorar o envio automtico de
      peso em balanas que possuem essa caracterstica, ligando a propriedade
      boleana "MonitorarBalanca". A cada peso lido o evento "OnLePeso" ser
      disparado.
      - Inicialmente implementamos os modelos Filizola e Toledo PrixIII
      ( Componente e Programa Demo elaborados por Fbio Farias,
        Daniel Simes de Almeida e Walmir Silva)

-- ACBr_D5.dpk --
[+]   Criado novo package para compatibilizar o projeto com o Delphi 5
[+]   Adicionada nova Unit ACBrD5.pas contendo todas as Functions e Procedures
      que no existiam no Delphi 5, permitindo a compilao...
      - Essa Unit NAO  utilizada ou compilada nas verses do Delphi 6 acima.
      - Essa Unit NAO  LGPL pois contem cdigos de propriedade da Borland
[*]   Quase todos os fontes do projeto foram revisados para permitir a
      compilao condicional no Delphi 5 usando {$IFDEF Delphi6_UP}

-- ACBr_LCL.lpk --
[+]   Criado novo package para compatibilizar o projeto com o Lazarus (FPC)
      http://www.lazarus.freepascal.org/
      - Compatibilidade feita por: Douglas Fernando Scheibler
[*]   Vrios fontes do projeto foram revisados para permitir a compilao
      condicional no Lazarus usando {$IFDEF FPC}

-- ACBrECF --
[*]   Mtodo "VendeItem" modificado para permitir informar o Tipo da Alquota
      - O parmetro TIPO  opcional, a passagem de parmetros antiga continua
        funcionando
      - O Tipo pode ser informado na mesma String, no final da alquota,
         exemplos: 18T (18% ICMS) , 2,5S  (2,5% ISS)
      - Recurso adicionado para evitar conflito de alquotas com o mesmo valor
        porm de Tipos diferente: Exemplo: 01 12% ICMS,   02 12% ISS.
        Usando "12T", o ACBrECF usa a alquota 12 do ICMS, "12S" a do ISS
[*]   Mtodo "AchaICMSAliquota" modificado para receber o parmetro Tipo.
      AchaICMSAliquota( ValAliquota, Tipo = ' ')
      Se o Tipo no for informado assume (vazio), e a busca por alquota  feita
      sem se importar com o Tipo de alquota
[*]   Melhorado suporte a todos os comandos que recebem uma Double. O componente
      ir ajustar as Decimais dos valores para o mximo permitido pelo ECF
      usando a funo RoundTo()
[-]   Corrigido Bug Inserido verso 0.8.2b. mtodo FechaCupom e outros mtodos
      que recebiam um parmetro Observao : String. O caracter de Pulo de Linha
      na String ( representado por #10  ou  | (pipe)) no era processado.
      - Bug reportado por: Cludio Borba
[*]   No Mtodo ReduoZ, era obrigatria a passagem de um parmetro
      TDateTimTDateTime, que agora,  opcional.
      - Para os ECFs em que esse parmetro  obrigatrio ser usado "now" caso
        o parmetro no seja informado.
      - Nos ECFs em que o parmetro NAO  obrigatrio o comando enviado ao ECF
        no conter String com a DataHora caso o parmetro no seja informado.
[*]   Mtodo "SubtotalizaCupom" modificado para receber como 2o parmetro a
      Mensagem de Rodap do Cupom... (Permite a omisso dessa parmetro)
      - Em alguns ECFs (como a DataRegis)  necessrio informar a Mensagem antes
        dos pagamentos pois o ECF no possui um comando para Fechamento de Cupom
        O Fechamento  executado assim que o Total de pagamentos atinge o Total
        do Cupom
      - Nos ECFs que no usam a Mensagem de Rodap nesse mtodo ela ser
        acumulada internamente e usada em FechaCupom, caso nenhuma mensagem
        seja informada em FechaCupom
[+]   Criado um novo mecanismo de espera ao trmino da Impresso. Alguns ECFs
      respondem ao comando muito antes do trmino da impresso, e isso poderia
      causar problemas aos comandos enviados na sequencia.
      - Adicionada a propriedade "AguardaImpressao", quando ela  ajustada para
        True, o mtodo "LeReposta" ir efetuar chamadas a funo
        "VerificaFimImpressao" at que ela retorne True
      - "VerificaFimImpressao" foi implementada em cada Classe de ECF em substi-
        tuio ao mtodo "EnviaComandoEspera"
[+]   Adicionado mtodos e propriedades para Processar as Lista Unidades de
      Medida, presente apenas em alguns modelos de ECF. (DataRegis)
      procedure CarregaUnidadesMedida
      Property UnidadesMedida : TACBrECFUnidadesMedid
      function AchaUMDDescricao( Descricao : String ) : TACBrECFUnidadeMedida
      function AchaUMDIndice( Indice : String ) : TACBrECFUnidadeMedida
      Procedure ProgramaUnidadeMedida( var Descricao: String)
      - O programa ECFTeste.dpr foi modificado para exemplificar o uso desses
        novos mtodos

-- ACBrECFNaoFiscal --
[-]  Corrigido Bug na Abertura do dia atravs da LeituraX. ECF no ficava no
     estado estLivre mesmo aps a LeituraX
     -  Bug reportado por Fbio Farias
[-]  Leitura do comando de Abertura de gaveta do arquivo INI no era
     decodificada corretamente
     -  Bug reportado por Fbio Farias
[-]  Troco no cupom no era subtrado da forma de Pagamento: 01-Dinheiro
     -  Bug reportado por Fbio Farias
[-]  Corrigido Bug em Impresso de Relatrio Gerencial... A primeira linha no
     era impressa...   - Bug Reportado por:  Anderson Rogrio Bejatto
[-]  Corrigido consumo excessivo de CPU em Venda com Muitos Itens
     - Bug Reportado por:  Anderson Rogrio Bejatto
[*]  Relatrio Gerencial modificado para imprimir apenas um cabealho,
     semelhante aos ECFs novos (no imprime mais uma Leitura X antes do Relat.)
[+]  Propriedade "Operador" ser gravada no arquivo ACBrECFxxx.INI
[*]  Rodap padro modificado para incluir as Informaes: Verso do ACBr e
     Operador
[*]  Modificado o Texto impresso aps o trmino das Formas de pagamento de
     "Valor Recebido" para "S O M A"...
      - Essa linha ser impressa apenas se tiver mais de 1 pagamento no Cupom

-- ACBrECFSweda --
[-]  Corrigido BUG na Rotina EnviaComando, que causava TimeOuts em vrios
     mtodos e propriedades. ( O Controle de Fluxo de Hardware estava errado)
[*]  Modelo "ecfSweda" Compatibilizado com a srie ST (MFD). Testes realizados
     usando o emulador "Sweda SIM Connect"
[*]  Rotinas testadas e compatibilizadas com a srie 9000. Testes realizados em
     um ECF IF-S 9000IIIE ver 1.0
[-]  Corrigido Bug em "VendeItem", em alguns valores Qtd x Preo Unitrio a
     funo Trunc() do Delphi apresentava problemas, calculando errado o Total.
[*]  Modificado o sistema de deteco de Firmaware atravs da propriedade
     Publica "Versao : TACBrECFSwedaVersao"
[*]  Modificado o mecanismo de Espera do trmino da Impresso usando a nova
     propriedade "AguardaImpressao:=True" e a funo "VerificaFimImpressao"
[*]  Removido o mtodo EnviaComandoEspera
[*]  Adicionado suporte a Impresso de cheques

-- ACBrECFBematech --
[*]  Modificado o mecanismo de Espera do trmino da Impresso usando a nova
     propriedade "AguardaImpressao:=True" e a funo "VerificaFimImpressao"
[*]  Removido o mtodo EnviaComandoEspera
[-]  Corrigido BUG em CarregaFormasPagamento. Todas as formas carregadas eram
     convertidas para Maisculas   (Bug reportado por: Ederson Selvati)

-- ACBrECFDaruma --
[*]  Modificado o mecanismo de Espera do trmino da Impresso usando a nova
     propriedade "AguardaImpressao:=True" e a funo "VerificaFimImpressao"
[*]  Removido o mtodo EnviaComandoEspera
[-]  Corrigido BUG na carga de Formas de Pagamento e CNF. A rotina anterior
     carregava todas as formas de pagamento... mesmo as que no haviam sido
     programadas   (bug corrigido por Ederson Selvati)

-- ACBrECFDataregis --
[*]  Ajuste de todos os mtodos para compatibilizar com a verso 02.05
     (por: Anderson Rogrio Bejatto)
[*]  Modificado o mecanismo de Espera do trmino da Impresso usando a nova
     propriedade "AguardaImpressao:=True" e a funo "VerificaFimImpressao"
[*]  Removido o mtodo EnviaComandoEspera
[*]  VendeItem, Adicionado o Numero do Item Vendido antes da impresso do cdigo
     (DataRegis no imprime o No do Item, o que dificulta no Cancelamento de
      de Item)

-- ACBrECFMecaf --
[*]  Corrigido BUG em VendeItem... para a MECAF imprimir o Item em 2 linhas (e
     e no em 3 linhas) ela deve restringir a descrio em 20 caracteres
     (Bug Reportado por Rildecy de Queiroz Borba)
[*]  Compatibilizado com a verso 301
[*]  Corrigido BUG. Quando a reduo z ficava pendente de um dia para o outro
     o ECF ficava em estDesconhecido. (Gabriel Fernandes - Duel Informtica)

-- ACBrECFUrano --
[+]   Iniciado o desenvolvimento do modelo Urano (por Aurimenes Apolonio Silva)
      - Mtodos de Venda e Relatrios concludos.

-- ACBrCHQ --
[-]   Arquivo BemaFi32.INI, no era lido e processado mesmo quando existente na
      mesma pasta do Executvel.
      - Esse Bug tambm afeta o componente ACBrECF quando usando um modelo
        ecfBematech ( apenas no mtodo ACBrECF.ImprimeCheque )

-- ACBrCHQSchalter (ImpreCheque) --
[*]   Corrigido mtodos ImprimeLinha e ImprimeVerso

-- ACBrBase --
[*]   Criado {$DEFINE ThreadEnviaLPT}, que quando desligado permite desativar a
      ThreadEnviaLPT. Padro  desabilitar a Thread por motivos de performance
      - Use esse opo se voc deseja ligar a Thread
[*]   Adicionada funo "IIsTXTFilePort" que retorna Verdadeiro se o contedo da
      Porta termina com ".TXT"
[*]   Caso a porta seja um arquivo TXT (IsTXTFilePort) o componente mantm os
      dados no arquivo, acrescentando as linhas "impressas" no final

-- ACBrUtil --
[+]   Adicionada a Funo  TruncFix( X : Real) : Integer
      Essa funo  usada para corrigir o bug de otimizao da funo Trunc()
      original do Delphi


Verso 0.8.2b  05/07/05
-- ACBrECF --
[-]   Corrigido BUG em ArredondaPorQtd. Em algumas ocasies a Qtd era adicionada
      desnecessariamente. Ex: Qtd = 1, Preo = 1,99 o resultado impresso era:
      1,001 x 1,99 = 1,99
      - Bug causado por Erro na otimizao da funo Trunc do Delphi:
      ( http://www.activedelphi.com.br/modules.php?op=modload&name=News&file=
         article&thold=-1&mode=flat&order=0&sid=87 )

[*]   Melhorado suporte a todos os comandos que recebem uma String livre para
      Observao, removendo os Acentos e ajustando as quebras de linha, a fim
      de no causar erros na hora da Impresso.

-- ACBrECFDataRegis --
[+]   Iniciado o desenvolvimento do modelo DataRegis (por Airton Stodulski)

-- ACBrECFBematech --
[-]   Corrigido BUG em FechaCupom. Linhas de Observao eram impressas com
      alinhamento errado.                    ( Bug reportado por: Erique Costa )
[-]   Corrigido BUG em AbreCupom na MP25 / MFD. Mesmo que CPF/CNPJ no fosse
      informado era impressa a linha de CPF/CNPJ.
      ( Bug reportado por: Anderson Rogrio Bejatto )

-- ACBrECFMecaf --
[*]   Fontes adaptados para suporte da Versao FCP201 da MECAF (antiga)
[-]   Corrigido BUG em FechaCupom. Linhas de Observao eram impressas com
      alinhamento errado.        (Bug reportado por Licerio Jos Rodrigues Neto)
[-]   Corrigido BUG em Estado. No incio do dia Estado sempre constava como
      estBloqueda                (Bug reportado por Licerio Jos Rodrigues Neto)

-- ACBrECFDaruma --
[*]   Inicio do desenvolvimento para suporte a Daruma MFD (no concludo por
      falta de documentao )

-- ACBrECFSweda --
[-]   Corrigido alguns Bugs nos ECFs verso 0.3, em VendeItem e
      EfetuaPagamento        (Bugs reportados por Licerio Jos Rodrigues Neto)

-- ACBrECFSchalter --
[-]   Corrigido Bug na VendeItem, que interpretava errado Produtos vendidos sem
      sem nenhuma casa decimal como 3 casas decimais.
      (Bug corrigido por Valmor Florez)

-- ACBrECFNaoFiscal --
[-]   Variveis Subtotal ou TotalPago poderiam, conter valores com mais de 2
      decimais, o que poderia causar problemas nas comparaes dos valores.
      (Bug reportado por Licerio Jos Rodrigues Neto)

-- ACBrValidador --
[+]  Adicionada a propriedade Publica DigitoCalculado readonly, que assim como
     MsgErro, ter um valor definido apenas aps chamar o mtodo Validar

-- ACBrCHQ --
[-]  Corrigido BUG no envio da Data em Linux (data como dd-mm-aa)
     (Bug reportado por Matheus Nogueira)

-- ACBrUtil --
[+]   Adicionada as funoefunes:
      function OnlyNumber(const Value: string): String;
      - Retorna uma String apenas com os char Numricos contidos em <Value>
      function OnlyAlpha(const Value: string): String;
      - Retorna uma String apenas com os char Alpha contidos em <Value>
      function OnlyAlphaNum(const Value: string): String;
      - Retorna uma String apenas com os char Alpha-Numericos contidos em <Value>

[*]   Funo Poem_Zeros(Texto : String; Tamanho : Integer) modificada para
      permitir Strings com numeros (Texto) maiores do que o mximo permitido
      pelo tipo Inteiro.

Verso 0.8.1b  01/04/05
-- Estrutura de Diretrios --
[*]   Alterada a estrutura de diretrios e pacotes para facilitar a distribuio

-- ACBrMonitor --
[+]   Lanada a primeira verso do programa ACBrMonitor.
      - Permitir o acesso remoto dos componentes ACBr por TCP/IP ou TXT, neces-
        sario em aplicaes rodando em ambientes de "Terminal Burro" como por
        exemplo WTS (Windows Terminal Server), ou LTS, SSH, Telnet
      - Permite que outras linguagens que consigam usar a comunicao por TCP/IP
        ou ler e criar arquivos TXT, interagir com os componentes ACBr

-- ACBrECF --
[+]   Novo modelo de ECF implementado:   ecfSweda
      - Deve ser compativel com os seguintes modelos da Sweda:
        A - IF-7000III, B - IF-7000I,  C - IF-7000II, D - IF-7000IE,
        E - IF-7000IIE, F - IFS-9000,  G - IFS9000IIIE e todas as verses do
        modelo IF-7000I (0.03, 1.0, 1.5)
      - Testado apenas em uma Sweda IFS-7000I v1.5  Favor reportar bugs em
        demais modelos.
[+]   Novo roteiro de teste de ECF (Source\Pascal\Demo\RoteiroTestesECF.TXT).
      Ajude a testar o ACBr rodando o Roteiro de testes no seu equipamento.
[+]   Adicionado evento OnMsgPoucoPapel: TNotifyEvent;  que  acionado sempre
      que a msg de pouco papel precisa ser exibida. Para manter a funcionalidade
      anterior, se nada for atribudo a esse evento, uma MessageDlg ser exibida
      com a mensagem: "Pouco Papel"
[+]   Novas funes para localizar o ECF automaticamente:
      Function AcharECF( ProcuraModelo: Boolean = true;
                         ProcuraPorta : Boolean = true;
                         ATimeOut : Integer = 0): Boolean ;
      Function AcharPorta(ATimeOut: Integer = 0): Boolean;
      - Se a propriedade Porta = '' (vazia) ou 'procurar' o Componente ir
        tentar localizar o ECF definido em Modelo nas portas de COM1 a COM6
[+]   Adicionada a propriedade   ArredondaPorQtd: Boolean (Published). Com essa
      nova propriedade  possvel Arredondar sempre, mesmo que o ECF no permita
      Arredondamento (os novos ECF's MFD no permitem arredondar). Nesse caso o
      arredondamento  feito, somando 0.001 na QTD do Item Vendido at o valor
      Truncado ser igual ao Valor Arredondado.
[+]   Adicionada a propriedade   HorarioVerao: Boolean (readonly) que l o Flag
      de Horario de Vero do ECF
[+]   Adicionada a propriedade   Arredonda: Boolean (readonly) que l o Flag de
      Arredondamento do ECF
[+]   Adicionada a propriedade   NumLoja : String  (4) (readonly)
      - Apenas Bematech retorna corretamente o NumLoja, em todos outros modelos
        ser retornado '001'
[+]   Adicionada a propriedade   NumCRO  : String  (4) (readonly)
      - No funciona na Schalter (retorno padro '001')
[+]   Adicionado Metodos para Impresso e Captura da Memria Fiscal.
      Procedure LeituraMemoriaFiscal( DataInicial, DataFinal : TDateTime ) ;
      Procedure LeituraMemoriaFiscal( ReducaoInicial, ReducaoFinal : Integer);
      Procedure LeituraMemoriaFiscalSerial( DataInicial, DataFinal : TDateTime;
         var Linhas : TStringList ) ;
      Procedure LeituraMemoriaFiscalSerial( ReducaoInicial,ReducaoFinal:Integer;
         var Linhas : TStringList ) ;
      - Os mtodos usam a Sobrecarga. A LeituraMemoriaFiscalSerial retornar o
        contedo da leitura em um TStringList atravs do parmetro "Linhas"
[+]   Adicionada Procedure MudaArredondamento(Arredondar: Boolean);
      - Alguns modelos de ECF no possuem ou no permitem ligar o Arredondamento
      - Funciona somente aps Reduo Z e antes da 1a venda.
[*]   Procedure VendeItem agora permite que o parmetros AliquotaICMS seja
      especificado em Valor da Aliquota ou Indice da Aliquota.
      - Para especificar em Indice use o prefixo 'T' Exemplo:
        'T03' = Aliquota na posiao 03
      - Se AliquotaICMS iniciar com 'I', 'F' ou 'N' usa os respectivos totali-
        zadores internos para Isenao, SubstutiaoTributaria ou NaoIncidndia.
      - Se for um Numero vlido o componente ir usar o Indice da primeira
        aliquota equivalente ao Numero encontrada.. Exemplos: 18  ,  2.26  , 12 
[+]   Atendendo a pedidos, foi adicionado o mtodo de Programao de Alquotas
         Procedure ProgramaAliquota( Aliquota : Double; Tipo : Char = 'T';
            Posicao : String = '') ;
      - Funciona somente aps Reduo Z e antes da 1a venda e/ou Leitura X
      - Tipo pode ser: 'S' para Alquota de Servio (ISS) ou
        'T' (default) para ICMS
      - Se a posio no for informada (vazio = default) o componente achar a
        prxima posio livre
[*]   Adicionada o campo "Tipo : Char" em TACBrECFAliquota
      - Se TACBrECFAliquota.Tipo = 'T' alquota de ICMS, 'S' alquota de ISS.
[+]   Adicionado o mtodo de Programao de Formas de Pagamento (FPG)
         Procedure ProgramaFormaPagamento( var Descricao: String;
            PermiteVinculado : Boolean = true; Posicao : String = '') ;
      - Funciona somente aps Reduo Z e antes da 1a venda e/ou Leitura X
      - Se a posio no for informada (vazio = default) o componente achar a
        prxima posio livre
      - Na Daruma e Schalter, se PermiteVinculado for True, tambm ser
        programado um comprovante no fiscal (CNF) com a mesma descrio.
      - Bematech e Mecaf: no usam o parmetro PermiteVinculado.
[+]   Adicionado o mtodo de Programao de Comprovantes no Fiscais (CNF)
         Procedure ProgramaComprovanteNaoFiscal( var Descricao: String;
            Tipo : String = ''; Posicao : String = '') ;
      - Funciona somente aps Reduo Z e antes da 1a venda e/ou Leitura X
      - Tipo pode varias de acordo com o Modelo do ECF. Se vazio, assume o
        Default de cada ECF
        - Bematech e Mecaf: no usam o parmetro Tipo.
        - Daruma: 'V'  Comprovante Vinculado,
                  '+'  Entrada de Recursos,
                  '-'  Saida de Recursos...
                  - Se vazio assume: 'V'. Especifique apenas uma das opes.
        - Schalter: 'D' - Permite Desconto em Item.
                    'A' - Permite Acrescimo no Subtotal
                    'C' - Permite Cancelamento de Item
                    'P' - Obriga forma de Pagamento
                    'Vnn' - Obriga emisso de vinculado na Forma de Pagamento nn
                  - Se vazio assume Default = "DAC".
                  - Se usada a opo V todas as outras opes so ignoradas.
                    Exemplos:  V04 -> Torna a Emisso do Cupom Fiscal Vinculado.
                                      obrigatria para a Forma de Pagamento 04
      - Se a Posio no for informada (vazio = default) o componente achar a
        prxima posio livre

[-]   Corrigido Bug em Impresso de Relatrio Gerencial e Cupom NO fiscal
      Vinculado. Caso houvesse algum erro dentro desses relatrios no era
      gerada nenhuma exceo.

-- ACBrECFBematech --
[+]   Implementada correo para BUG detectado no comando TotalPago (35 22) das
      novas impressoras MP25FI e MFD verso 01.00.00.
      - Esse modelo ir retornar o Total Pago sempre igual ao Subtotal, o que
        pode ocasionar problemas em algumas aplicaes.
      - A correao  feita por meio de uma vrivel Interna, totalizando os
        pagamentos efetuados no Cupom. Portanto, se o programa for re-iniciado
        durante a fase de Pagamento do Cupom o problema ainda ocorrer.
[-]   Mtodo FechaRelatorio, gerava exceo caso a Impressora no estivesse com
      Relatrio Gerencial, ou CV aberto.
[-]   Falhava ao ler a Propriedade "NumSerie" em impressora no MFD.
[-]   CarregaAliquotas retornava valores errados se a Impressora tivesse mais
      de 8 alquotas cadastradas.
[-]   Procedure CorrigeEstadoErro gerava exceo em MFD pois essa no possui o
      cmd #70

-- ACBrECFDaruma --
[+]   Implementado mtodo: ImpactoAgulhas, que permite mudar a fora de Impacto.
[-]   Corrigido BUG em "FechaRelatorio", que no conseguia fechar corretamente
      um Cupom NAO Fiscal Vinculado, na Daruma FS345 - 1.20
      (Bug reportado por Aurimenes Apolonio Silva)

-- ACBrECFSchalter --
[-]   Corrigido Bug na AbreCupom, que omitia o Endereo do Emissor,
      (Bug Reportado por: Valmor Florez - Evoluthiva)
[*]   Inserido novo comando que permite imprimir o CNPJ / CPF do Cliente, na
      AbreCupom

-- ACBrECFMecaf --
[-]   Propriedade "Estado" no era detectada corretamente em algumas situaes,
      retornando "estRelatorio" na maioria das vezes.

-- ECFTeste.dpr --
[*]   Programa de teste do ACBrECF atualizado para testar os novos recursos do
      componente. (QECFTeste tambm foi atualizado)

-- ACBrLCB --
[-]   Corrigido bug em ACBrLCB. Quando o sufixo enviado pelo leitor era diferente
      do sufixo informado no componente, gerava erro de TimeOut e no lia o
      cdigo. Agora o cdigo  lido mesmo sem o sufixo ou com o sufixo errado.
      IMPORTANTE: Informar o sufixo correto para o componente  importante para
      ler corretamente um cdigo de cada vez. O sufixo  quem separa os cdigos
      lidos, sem o sufixo o componente pode ler 2 cdigos simultaneamente.

-- ACBrDIS --
[+]   Adicionado suporte a Linux para o Display de Mensagens modelo: Gertec Teclado
      - A comunicao com a Porta AT no  to rpida quando a Porta Serial,
        por isso, evite o uso excessivo de textos "animados"
      - A funo TxKeyboard(), usada nesse modelo, funciona normalmente em Win9x,
      - XP /NT /2000: deve-se usar um device driver que permita acesso direto
        a porta AT (disponvel em www.gertec.com.br)
      - Linux:  necessrio ter privilgios de ROOT para acessar /dev/port
        (use: su   ou   chmod u+s SeuPrograma )

-- ACBrValidador --
[+]   Adicionada rotina de verificao de CEPs
      (por Rennes Moreira Pimentel - InforSystem)
[+]   Adicionado verificao de CARTOES de Crdito, extrada do site:
      www.tcsystems.com.br
      - Testada com os cartes: (Dinners, Credicard, Visa, American Express)
[+]   Adicionada a propriedade: ExibeDigitoCorreto : Boolean ( default False )
      - Se houver erro no Digito Verificador e essa propriedade for True, o
        Digito calculado (correto) ser exibido na Mensagem de Erro.
[-]   Corrigido BUG na verificao de I.E. do Estado de GO para inscries na
      faixa de '101031050' a '101199979'

-- ACBrUtil --
[+]   Adicionada a Function   FilesExists(FileMask: string) : Boolean ;
[+]   Adicionada a Procedure  DeleteFiles(FileMask: string)  ;
[+]   Adicionada a Function   CopyFileTo(AFromFileName, AToFileName : String;
                                const AFailIfExists : Boolean = true) : Boolean;
[+]   Adicionada a Procedure: RunCommand(Command: String; Params: String = '';
                                Wait : Boolean = false; WindowState : Word = 0);

-- ACBrCalculadora --
[-]   Posio na tela da Calculadora no era mantida.

-- ACBrDevice --
[*]   Funo EnviaString quanto em Porta  Paralela ou Arquivo usa Thread para
      detectar se os Dados esto sendo "gravados" com sucesso. Evitando que o
      programa "congele" quando a Porta/Arquivo no est pronta.
[*]   Implementada deteco de EmLinha quando Porta  Paralela ou Arquivo,
      usando mecanismo de Thread citado acima.
[*]   Porta Paralela ou arquivo  aberto e fechado em seguida quando h a neces-
      sidade de enviar dados. Antes a Porta/Arquivo permanecia aberta enquanto
      ACBrDevice estivesse Ativo, isso retardava a impresso da ultima linha.

-- ACBr.inc --
[*]   Definio VisualCLX agora funciona automaticamente (identificando se QTypes
      ou QForms foram carregadas)
[*]   Suporte para identificao do Kylix 1, 2 e 3 e seus recursos
[*]   Suporte para identificao do Delphi 8 e 9 e seus recursos
[*]   Suporte para identificao do Free Pascal (FPC) e do Lazarus


Verso 0.07a  17/10/04
-- ACBrDIS --
[+]   Novo componente para Display de Mensagens para Cliente. Possui Procedures
      para exibir textos "animados" no display, usando uma Thread prpria para
      no atrapanhar o desempenho da Aplicao. VEJA o demo DISTeste.EXE
      - Modelo: disGertecSerial -  testado ok.
      - Modelo: disGertecTeclado - Por enquanto, funciona apenas em Win9X. Ir
        gerar exceo em WinXP/2000/NT ou Linux. Isso se deve ao fato da rotina
        que envia os caractres para a porta do Teclado ser escrita em ASSEMBLER
        e os SO mencionados acima no permitem acesso direto a porta do teclado.
[+]   Novo Demo para testar o ACBrDIS: DISTeste.dpr (VCL) e QDISTeste.dpr (CLX)

-- ACBrLCB --
[+]   Novo componente para Leitores de Cdigo de Barra Seriais.
      - Ajuste os parametros seriais de acordo com o seu modelo.
      (padro 9600,8,N,1).  O sufixo (caracter adicionado pelo Leitor) tambm
      deve ser informado corretamente (geralmente igual a #13  ou #13,#10).
      - Atravs da propriedade UsarFila  possvel ter um controle apurado de
        todos os cdigos informados pelo Leitor.
[+]   Novo Demo para testar o ACBrLCB: LCBTeste.dpr (VCL) e QLCBTeste.dpr (CLX)
[+]   Novo Emulador de Leitor Serial.  Se voc no dispoem de um Leitor serial
      para testes, esse emulador pode ser bem til. Use uma porta Serial dife-
      rente da especificada no ACBrLCB. O Emulador envia Strings pela Serial
      simulando um Leitor de Cod.Barras. Use o mesmo cabo utilizado pelos
      Emuladores de ECF para ligar as duas Portas Seriais

-- ACBrEnterTab --
[+]   Novo componente somente para CLX. Tem como finalidade traduzir a tecla
      ENTER como se fosse a tecla TAB, para poder mudar de campos com a tecla
      ENTER.  necessrio um ACBrEnterTab para cada Form a ser manipulado.
      - No h verso VCL, pois j existe o componente "JvEnterAsTab" da biblio-
        teca JEDI ( http://jvcl.sourceforge.net ).
      - Para ser compatvel com Linux esse componente NAO usa captura de
        mensagens ou chamadas a API. Ele utiliza KeyPreview e OnKeyPress do Form
        dono (Owner) do componente. Entretanto se houver algum evento OnKeyPress
        programado pelo usurio, ele continuar funcionando normalmente.

-- ACBrECFSChalter --
[-]  Corrigido retorno de DataHora (gerava exceo)
[-]  Corrigido retorno de NumSerie, que retornava 2xchr(0) no final do nmero.
[-]  Cancelamento de Cupom no era possvel se a Impressora estivesse em modo
     de Pagamento e com o Pagamento j finalizado.
[-]  CarregaComprovantesNaoFiscais (CNF) no estava lendo Flag de Permite-
     Vinculado e nem a Forma de Pagamento associada ao CNF,

-- ACBrECFDaruma --
[-]  Estado da Impressora sempre retornava Bloqueada
[-]  Venda de Item com Descriao Grande no funcionava
[-]  Bloquear Mouse / Teclado  e  Exibir Msg de Aguarde no funcionavam, pois a
     DARUMA responde muito antes da impressao acabar, finalizando a espera...
     Corrigido com adiao da procedure EnviaComandoEspera() como na BEMATECH.
[-]  Abertura de Gaveta de Dinheiro gerava TimeOut (nesse comando no h nenhuma
     resposta da impressora)

Verso 0.06a  14/09/04
-- ACBrCHQ --
[+]  Novo componente para manipular Impressoras de Cheques. Fabricantes suporta-
     dos: Bematech, Chronos, Schalter, Perto, ECF's, Imp.Comum.
     - Imp.Comum: Transforme aquela velha matricial em uma Impressora de Cheques
       O componente envia comandos diretamente para a porta das impressoras(LPT1
       ,LPT2, LPTn) usando "AssignFile()", e comandos EPSON ESC/P2 para configu-
       rar o Lay-Out da pgina do cheque. Portanto,impressoras "for Windows" no
       devem funcionar..
     - Para usar a impressao de cheques em ECF's  necessrio um ECF 2 estaoes
       e um componente ACBrECF configurado para o Modelo do ECF.
     - Modelo Bematech. Testada por "Everton H. Cardoso" da Bematech S/A - OK
     - Modelo Chronos. Testada por mim mesmo - OK
     - Modelo Schalter. No testado. (mas para minha surpresa, a Impressora
       Chronos funciona perfeitamente com os comandos da Schalter).
     - Modelo Perto. Unit no est finalizada. Todo o desenvolvimento foi
       baseado em Manuais, mas no pude "debugar" a Unit por no ter um Equipa-
       mento disponvel. Testes realizados pela Perto S/A por Miguel Silva,
       acusaram o funcionamento incorreto. Terminarei assim que uma impressora
       PertoCheck estiver disponvel....

-- ACBrECF --
[+]  Mais 3 impressoras Suportada pelo ACBrECF - Daruma, Schalter e Mecaf.
     Considerando os Modelos que utilizam chip-set da Mecaf o ACBrECF agora
     suporta os ECF's:  Bematech, Daruma, Schalter, Mecaf, (Elgin, Digiarte,
     Zanthus, Acr, Aoki, Chronos, Promcomp, TrendsSTS, Unigraph). Alm do modelo
     NAO FISCAL que  um Emulador de Impressora Fiscal em matriciais comuns
     (leia Nota legal durante o uso do Emulador)
     - Infelizmente no pude testar nenhum dos 3 ECF's lanados, por no ter um
       exemplar no momento. Entretanto, o cdigo desses Modelos de ECF's foram
       migrados de uma rotina em Clipper 5.01 (DOS) que tambm funcionam usando
       a comunicao direta na porta Serial.
     - Se voc possuir algum dos modelos de ECF citados acima, eu ficaria muito
       agradecido em saber o resultado dos seus testes...
       Por favor mande um e-mail...

[-]  As rotinas de Relatrio Gerencial e Cupom Fiscal Vinculado NAO estavam
     imprimindo a Linha 1 do Relatrio.  
[+]  Novo Evento OnAguardandoRespostaChange. Que  executado toda vez que o
     valor da propriedade AguardandoResposta for modificado. Muito til para
     bloquear os controles visuais e impedir que o usurio tente enviar novos
     comandos se o anterior ainda no terminou.
[+]  Adicionada propriedade "ComprovantesNaoFiscais" do tipo TObjectList,
     contendo a descriao de todos os CNF's  programados na Impressora.
     - Adicionado Metodo:  CarregaComprovantesNaoFiscais
     - Adcinada as funes: AchaCNFDescricao e AchaCNFIndice
[*]  Adicionada Sobrecarga nos Metodo CupomVinculado e AbreCupomVinculado com
     verso que  possivel informar o CodCompravanteNaoFiscal (necessrio em
     alguns modelos de ECF).
[*]  Removida Exceo que era disparada quando novo comando era solicitado e
     comando anterior ainda no havia sido concluido.
[*]  Abertura de Cupom zera o Tempo de mensagem para pouco papel, ou seja, se
     estiver com pouco papel, sempre haver alerta no caso de Abertura de Cupom
[*]  Propriedade (subcomponente) 'Serial' passou a se chamar 'Device'

-- ACBrECFBematech --
[*]  NumSerie adaptada para retornar 15 ou 20 carateres conforme a verso do ECF

-- ACBrGAV --
[*]  Propriedade (subcomponente) 'Serial' passou a se chamar 'Device'

-- ACBrDevice --
[+]  Adicionada propriedade Handshake, para facilitar a definicio do Handshake
     necessrio para cada equipamento. (RTS/CTS, DTR/DSR, XON/XOFF).
     Essa propriedade est ligada diretamente a HardFlow (RTS/CTS) e SoftFlow
     (XON/XOFF)
[+]  Adicionado Metodo ImprimePos( Linha, Coluna, AString) para facilitar a
     impressao direta de documentos em Matriciais.
     - Propriedade PosImp : Tpoint, contem a cordenada atual da Impressora.


Verso 0.05a  20/08/04
[+] Demos de todos os componentes ACBr j compilados para Linux e Windows
    adicionados no pacote final. DemosLinux_X.XXx.ZIP e DemosWin32_X.XXx.ZIP.
    Onde X.XXx  a verso do ACBr. Os Demos Win32 so VCL, portanto nao devem
    precisar de nenhuma biblioteca. Os Demos Linux devem precisar da QT
    (libborqt-6.9-qt2.3.so) disponivel no Kylix
-- ACBrValidador --
[+] Novo Componente para validao de diversos documentos como por exemplo:
    CPF, CNPJ, Num.Cheques, PIS, Inscrio Estadual (todos os estados).
    Considerando as Inscries Estaduais, esse componente verifica atualmente 31
    documentos diferentes. Novos documentos podero ser adicionados...
[+] Novo Demo para testar o ACBrValidador: ValidadorTeste.dpr (VCL) e
    QValidadorTeste.dpr (CLX)
-- ACBrExtenso --
[+] Novo Componente para traduzir Nmeros para Extenso. Permite mudar o nome da
    moeda e centavos
[+] Novo Demo para testar o ACBrExtenso: ExtensoTeste.dpr (VCL) e
    QExtensoTeste.dpr (CLX)
-- ACBrGAV --
[+] Adcionada String de abertura de Gavetas para Impressora NAO Fiscal Schalter
[-] Corrigido BUG que no permitia atribuir uma Porta se modelo de gaveta igual
    a gavImpressoraComum


Verso 0.04a  19/07/04
[-] Arquivos .DOF e .CFG no eram incluidos na pocote final de distribuio.
    Os mesmos so necessrios para compilao condicional usando a diretiva
    CLX ou VisualCLX no Delphi (Windows)
-- ACBrECF --
[+] Nova impressora para o componente ACBrECF implementada. Modelo:  "NaoFiscal"
    Na verdade esse modelo se trata de um pequeno "emulador" de impressora
    Fiscal. Se comportando de forma muito semelhante a um ECF, inclusive possui
    uma "memoria fiscal" que  gravada em um arquivo .INI. Muito til para
    ajudar no desenvolvimento de aplicaes com ECF. Pode imprimir em Portas
    Paralelas, Seriais, ou em arquivo, de acordo com a propriedade PORTA do
    componente ACBrECF.       
-- ACBrECFBematech --
[*] Mensagem de pouco papel a cada n segundos no funcionava como o esperado.
-- ACBrGAV --
[+] Novo Componente ACBrGAV para acionamento de Gavetas de Dinheiro. As gavetas
    podem ser ligadas a porta Serial, a uma impressora Fiscal ou a uma
    Impressora NAO Fiscal (impressora comum). No caso de impressora Fiscal,
    necessita de um componente ACBrECF.
[+] Novo Demo para testar o ACBrGAV: GAVTeste.dpr (VCL) e   QGAVTeste.dpr (CLX)



Verso 0.03a  28/06/04
-- ACBrECF --
[*] Propriedade NumVersao mudou de Integer para String para compatibilizar com
    alguns modelos de ECF
[*] Propriedades renomeadas: (Melhor organizaao visual das Propriedades)
    MsgTempoInicio -> TempoInicioMsg
    MsgExibe       -> ExibeMensagem
[*] Evento OnMsgAguarde teve seu parametro modificado de:
    TempoRestante : Integer -> Mensagem : String
    ( Peo perdo pelas mudanas acima. Mas achei necessrio para tornar o
      componente mais intuitivo. As propriedades no mais sero modificadas )
[+] Novas Propriedades:
    DescricaoGrande : Boolean default false;
    MsgRelatorio, MsgPausaRelatorio : String;
    PausaRelatorio : Integer  default 5
    LinhasEntreCupons : Integer  default 7
    FormMsgColor : TColor
    FormMsgFonte : TFonte
[+] Novos Metodos:
    RelatorioGerencial(Relatorio : TStrings; Vias : Integer = 1)
    AbreRelatorioGerencial
    LinhaRelatorioGerencial( Linha : String )
    CupomVinculado(COO, CodFormaPagto : String; Valor : Double
              Relatorio : TStrings; Vias : Integer = 1)
    AbreCupomVinculado(COO, CodFormaPagto : String; Valor : Double)
    LinhaCupomVinculado( Linha : String )

-- ACBrECFBematech --
[+] Melhorado o suporte a impressora MFD, nova propriedade:  IsMFD : Boolean
    ( Existe um bug na verso do Emulador EMULFITH 1.02 da Bematech, que no
      retorna corretamente o TotalPago (Comando 35 22)  )
[+] Suporte as novas propriedades e metodos de ACBrECF descritas acima.

-- QECFTeste / ECFTeste --
[+] Adcionadas rotinas de impresso de Relatrio Gerencial e Cupom Vinculado
[-] Rotina de exemplo "EnviarComando" corrigida para trabalhar com a Bematech


Verso 0.02a  16/06/04
---------------
[+] Demo para o componente ACBrECF em VCL e CLX desenvolvido para todos os
    comandos implementados no ACBrECF at o momento
[-] Diversos Bugs corrigidos nas rotinas de Cupom Fiscal e Formas de Pagamento
    da Impressora Bematech

Verso 0.01a   14/06/04
---------------
[+] Incio do Projeto
[+] Primeira Versao finalmente lanada.
[+] Componente ACBrCalculadora Finalizado,
[+] Componente ACBrECF implementado parcialmente (80%)
[+] Demo para o componente ACBrECF em VCL e CLX parcialmente desenvolvido (50%)
