Warum ist die Funktion eigentlich so kompliziert?
Das Kopieren des String in einen Puffer ist doch überflüssig.
Delphi-Quellcode:
function TCommPortDriver.SendString(const s: AnsiString ): boolean;
begin
Result := SendData(PAnsiChar(s), Length(s) ) = Length(s);
// je nach Deklaration von SendData könnte der Aufruf auch so aussehen
// Result := SendData(s[1], Length(s) ) = Length(s);
end;