Ich denke hier liegt das Problem:
Delphi-Quellcode:
FMy_Thread2 := TTheThread2.Create;
FMy_Thread2.OnChange := DoOnChange; { ! }
Der Thread wird erzeugt und läuft gleich los, aber das OnChange ist noch nicht gesetzt.
Versuch mal dies:
Delphi-Quellcode:
FMy_Thread2 := TTheThread2.Create(False);
FMy_Thread2.OnChange := DoOnChange; { ! }
FMy_Thread2.Start;
BTW, die Zugriffe aus dem Thread auf
frm_Main halte ich für gefährlich, während die Zugriffe auf
frm_Main in den Methoden von
Tfrm_Main lediglich kontraproduktiv sind.