Du erzeugst mit PChar(Data) einen Zeiger auf den Char Data. SendString sendet aber einen nullterminierten C-String.
Die Terminierung des Strings, sprich das 0-Byte das auf Data folgen sollte, fehlt hier aber.
Delphi-Quellcode:
var
DSTR: array [0..1] of Char;
begin
DSTR[0] := Data;
DSTR[1] := #0;
COMPort.SendString(@DSTR[0]);
end;
marabu's Losung ist meiner aequivalent, nur das ich es zu Fuss mache waehrend die Zuweisung eines Chars an einen string von Delphi intern gehandhabt wird.