Ricardo César Cardoso wrote: > Obrigado pela explicação Davi. Realmente, vi que a minha "solução" > não era uma boa prática, apesar de funcional, mas não sabia > exatamente o porque... Valeu mesmo. > > Então o conselho resumido seria: ao invés de utilizar uma Function, > utilize uma Procedure?
O meu pitaco é: se você cria um string list que continuará em memória, use uma função, de preferência com um nome sugestivo como CriaLista. Se a lista é temporária, passe-a para uma procedure, ou uma função boolean para indicar se ocorreu tudo ok ou não. A procedure deve receber a lista já instanciada e vai apenas populá-la. Ex de uso: begin VLista := TStringList.Create; try UsaLista(VLista); // algum processamento na lista finally VLista.Free; end; end; -- Joao Morais