Solo un par de observaciones, el primer carácter de un string es el 1 y no el 0 y segundo, en el código
yusnerqui añades un salto de linea con el carácter #10 y con el #13, lo conveniente seria decidirse por uno e ignorar el otro. Algo así:
Código Delphi
[-]
var
temp: String;
n:integer;
begin
comport1.ReadStr(temp,count);
for n := 1 to count do if temp[n]=#13then
memo1.Lines.Add('');
else if temp[n]<>#10 then
memo1.Text:=memo1.Text+temp[i];
end;