Hice una prueba colocando un TrackBar en el formulario y este código:
Código Delphi
[-]procedure TForm1.TrackBar1Change(Sender: TObject);
begin
If comport.Connected then
Comport.WriteStr(IntTostr(TrackBar1.Position ))
else
showmessage('Abra el Puerto primero');
end;
Conecte los pines 2 (Tx) y 3 (Rx) de mi puerto com en puente para que el trasmita y reciba simultaneamente.
Al TrackBar le puse un valor de mínimo 100 y máximo 500 con intervalos de 15 y en memo me aparecen perfectamente los tres dígitos. tres lecturas y se limpia el memo.
Pienso que el problema no esta en la recepcion sino en la manera en que estas enviando los datos, pero eso ya es codigo de los pics y ahi si no se nada.