O procedure GerarArquivos da classe TACBrCargaBal, contem cindo variaveis do tipo TStringList, as mesmas estão sendo criadas mas somente as três primerias estão sendo removidas da memoria. Eu adicionei duas linhas para remover as variaveis da memoria, como no codigo abaixo. Seria interessante adicionar a remoção das variaveis da memoria e disponibiliza no projeto acbr para as proximas atualizações.
procedure TACBrCargaBal.GerarArquivos(const ADiretorio: String);
var
Produto, Setor, Receita, Nutricional: TStringList;
RelacaoProdutoNutricional, RelacaoProdutoReceita: TStringList;
NomeArquivo: TFileName;
Total: integer;
begin
if Trim(ADiretorio) = EmptyStr then
raise EACBrCargaBal.Create(ACBrStr('Informe o diretório onde serão gerados os arquivos de carga!'));
if not DirectoryExists(ADiretorio) then
raise EACBrCargaBal.Create(ACBrStr('Diretorio informado não existe!'));
if Self.Produtos.Count = 0 then
raise EACBrCargaBal.Create(ACBrStr('Não foram informados os produtos para a geração!'));
Produto := TStringList.Create;
Produto.Clear;
Setor := TStringList.Create;
Setor.Clear;
Receita := TStringList.Create;
Receita.Clear;
Nutricional := TStringList.Create;
Nutricional.Clear;
RelacaoProdutoNutricional := TStringList.Create;
RelacaoProdutoNutricional.Clear;
RelacaoProdutoReceita := TStringList.Create;
RelacaoProdutoReceita.Clear;
...
Progresso('Terminado', Total, Total);
finally
FreeAndNil(Produto);
FreeAndNil(Setor);
FreeAndNil(Receita);
FreeAndNil(Nutricional);
{
Por: Pascoal de Castro. Em 19/11/2016.}
FreeAndNil(RelacaoProdutoNutricional);
FreeAndNil(RelacaoProdutoReceita);
end;