Man kann und sollte auch direkt mit AnsiStrings arbeiten; dann entfällt dieses mühsehlige Rumgemache mit "buff" und "binaer".
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
sSend: AnsiString;
begin
if not ComPort1.connected then
begin
//ComPort initialisieren
ComPort1.BaudRate := br9600;
ComPort1.DataBits := dbEight;
ComPort1.StopBits := sbOneStopBit;
ComPort1.Parity.Bits := prNone;
ComPort1.FlowControl.FlowControl := fcNone;
ComPort1.Port := 'COM16';
ComPort1.Open;
end;
sSend := #2#0#1#254#255; //ccTalk Polling Befehl
// Hinweis: das letzte Byte ist die Prüfsummer bei ccTalk
// eigentlich müsste diese berechnet werden
Memo1.Lines.Clear;
Memo1.Lines.Add('Sende: 'sSend);
//Befehl an Comport senden
ComPort1.ClearBuffer(True, True); //sicherheitshalber
ComPort1.Write(sSend[1], Length(sSend));
end;