Forum: Object-Pascal / Delphi-Language
Delphi
by Apollonius,
2. Mai 2009
Ich glaube, dass du alle Bytes im String erst explizit auf #0 setzen musst.
Forum: Object-Pascal / Delphi-Language
Delphi
by Apollonius,
2. Mai 2009
Das sieht eigentlich richtig aus. Kannst du mal den ganzen Code zeigen? Prinzipiell kannst du das ganze auch stark vereinfachen, wie Reinhard ja bereits angedeutet hat.
Forum: Object-Pascal / Delphi-Language
Delphi
by Apollonius,
2. Mai 2009
var Data: String;
//...
SetLength(Data, 1);
if bit0 = 1 then
Byte(Data) := Byte(Data) + $80;
//...
ComPort1.WriteStr(Data);
Ich vermute mal, dass du später mehrere Bytes auf einmal senden willst. Dann musst du den zweiten Parameter von SetLength entsprechend anpassen und Data entsprechend indizieren.
Forum: Object-Pascal / Delphi-Language
Delphi
by Apollonius,
2. Mai 2009
Du willst kein Array of String, du willst einen String. Und dann bist du über den +-Operator gestolpert, denn dieser fügt Strings zusammen. In Wirklichkeit willst du den aktuellen Buchstaben als Byte betrachten und dazu die Bitwerte addieren.
Wenn du mit Strings arbeitest, musst du aufpassen, dass sich die Comport-Komponente nicht an #0-Zeichen verschluckt. Wenn eine solche Möglichkeit zur...