Von dem ByteArray möchtest Du das erste Byte senden, und gibst die Gesamtlänge des Arrays mit. Was genau bezweckst Du damit?
ComPort.Write(ABytes[0], Length(ABytes));
Ich vermute, daß Du den Pointer auf die erste Speicherstelle des Arrays senden musst.
Sherlock