1. Ausser im Hauptthread sollten keine
VCL-Aufrufe erfolgen (z.B. die Memo-Adds)
2. Application.ProcessMessages gehört (wenn überhaupt) in den HauptThread. Eigentlich solltest du ganz darauf verzichten.
3. Deine repeat-Schleife wird erst erreicht, wenn ein etwas empfangen wird. Den wiederholten Aufruf von DoThread hast du in der Methode Input versteckt, die immer dann aufgerufen wird, wenn ein Zeichen empfangen wurde - auch wenn Stopped = true ist!
Folge:
- solange nichts empfangen wird, erfolgt auch keine Abfrage von stopped
- obwohl stopped = true, wird weiter auf Input gewartet
- das ganze beendet sich nur bei einem anderen CommEvent als EV_RXCHAR