Zitat:
for iFor := 1 to ComPort1.InputCount do
Ändert sich der Wert von ComPort1.InputCount? Wenn ja, was ich annehme, dann solltest du das ganze in eine while-Schleife umwandeln, da bei einer for-Schleife der Ziel-Wert nur einmal ausgewertet wird. Also bei einer Änderung von InputCount iteriert die for-Schleife immernoch bis zum alten Wert, der beim Eintritt in die Schleife von InputCount zurückgeliefert wurde.
Hast du auch das sCom[2] auskommentiert, oder zumindest auch 2 Zeichen eingelesen?