Es raro porque la línea del for no parece que deba fallar.
Este bloque es un poco raro y deberías corregirlo:
Código Delphi
[-]
try
comparacion.Destroy;
finally
comparacion.Create;
end;
Posiblemente te bastaría hacer un
Si continuas con el inicial, al menos deberías hacer la creación correctamente:
Código Delphi
[-]
comparacion := TStringList.Create();