Ich habe gerade etwas getestet und etwas herausgefunden.
Jeglicher Code der nach der While-Schleife (die ja nach der Erzeugung der Threads kommt) kommt, wurde jetzt weggelassen.
Button1Click wird ebenfalls per Exit nach Aufruf von UnitX.Prozedur1 sofort verlassen. Selbst dann funktioniert PostMessage nicht.
Woher weiß Du das?
Das Postmessage braucht eine Gegenseite, die die Message annimmt, und dann wird immer noch eine Anzeige benötigt.
Dahingegen funktioniert im Thread aber sogar ein unsynchronisierted/un-queu'tes FrmMain.Caption := IntToStr(i);
Zufall, geht 10.000 mal gut und dann macht es *Bumm*
Gruß
K-H