Wie ist denn die Prozedur Write des TComport deklariert?
(ich hab keine Lust mir das Teil extra runterzuladen)
Aber wenn es ein Pointer ist, dann solltest du auch einen Pointer übergeben.
Also den Zeiger auf deine Daten und nicht den Zeigers selber (bzw. dessen erstes Adressbyte).
Comport1.Write(@ByteSenden, 1);
.
Ansonsten nutzt du ja Binärwerte, also solltest du diese auch binär verrechnen und nicht logisch.
Delphi-Quellcode:
ByteSenden := LEDsLeft[BarLeft] or LEDsRight[BarRight];
// bzw.
ByteSenden := (BarLeft shl 4) or BarRight;