Das ist Richtig, aber wenn der Datensatz immer 1024Byte groß ist, wie kann es dann sein das er unterschiedlich lang ist.
Im Anhang, habe ich mal 2 Datensätze abgezeichnet. Es ist z.B. auch so, das beim 1 Datensatz der Count 1024 ist.
Wie bekomme ich raus, durch was das Event
procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
gestarte wird.
[EDIT] In einem anderen Thread, habe ich das hier gefunden..
Delphi-Quellcode:
Example (inside OnRxChar)
Code: markieren
procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
var
Str: String;
begin
ComPort1.ReadStr(Str, Count);
Label1.Caption := Str;
end;
Example (outside OnRxChar)
Delphi-Quellcode:
Code: markieren
var
Str: String;
begin
// set timeouts here or at design time
ComPort1.ReadStr(Str, NumberOfBytes);
Label1.Caption := Str;
end;
Sobald was an der Seriellen ankommt, wird die Caption gesetzt. Du brauchst also kein extra Button um es einzuschalten.
Jetzt musst DU nur noch einen Weg finden, bei klick auf einen Button, die Cation des Labels nicht mehr geändert werden kann.
Das müsste ja, bedeuten, wenn ich meine Ser. Schnittstelle schließe sobald ich den Buffer gelesen habe, und erste nach leerem Buffer wieder öffne, könnte es gehen.