TThreadI: Übernimmt (synchronisiert?) den Wert aus der obigen I-Schleife und versendet den.
Also synchronisieren kannst man beim Debuggen vergessen. Das wird doch nur ausgeführt wenn der Hauptthread ProzessMessages aufruft.
Denkbar währe I durch einen Record mit Zuweisungsoperatoren (in beide Richtungen) für Integer zu ersetzen.
Der Record müsste auch eine CriticalSection enthalten, die beim Zugriff auf die interne Variable verwendet werden.