Zusätzlich zu Redeemers Frage, ein weiterer Grund dafür, dass nicht das passiert, was du willst:
Ich gehe mal davon aus, dass Form2 automatisch erzeugt wird. Das ist ja so standard bei Delphi.
Wenn du nun auf der Form1 den Button (mehrfach) drückst, und
Delphi-Quellcode:
Form2 := TForm2.Create(nil);
Form2.Show;
ausführst, dann wird eine zweite (dritte? vierte?) Instanz von TForm2 erzeugt und immer unter der globalen Variable Form2 abgelegt. Die automatisch erzeugte Form2 (und alle davor erzeugten) sind dann nicht mehr erreichbar. D.h. alle Threads würden in die gleiche TForm2-Instanz schreiben wollen - nämlich die zuletzt erzeugte. Die anderen liegen dann als Datenmüll irgendwo rum.
Ein zusätzlicher Thread mit ungesichertem Zugriff auf die
VCL mag ja gelegentlich mit Glück noch mal gut gehen. Aber wenn mehr als ein Zusatz-Thread in die gleiche Komponente schreiben will, knallt es garantiert.
The angels have the phone box.