En cuanto a lo que tu preguntabas de usar el retorno de carro (chr(13)):
En Indy hay 2 tipos de comandos de escritura: Write y Writeln.
La diferencia fundamental entre ambas es que el writeln introduce un retorno de carro al final del texto que has introducido (para quitarte de trabajo) y el write no.
Ejemplo:
Código Delphi
[-]
IdTCPClient.Write('¡Hola!')
IdTCPClient.Writeln('¡Hola!');
Saludidos