Aus Zeitgründen habe ich jetzt nicht Deinen Quellcode eingesehen.
1) Grundsätzlich musst Du einem zur Laufzeit erzeiugten Control aber auch noch einen Parent zuweisen.
MyBall.Parent := MyPanel;
Damit sollte Dein Control zumindest schon mal sichtbar sein.
2) Die
VCL ist für Spiele und Echtzeitanwendungen eher ungeeignet.
Du kannst zwar einen Timer verwenden und so einzelne Schritte von Objekte berechnen während Du auch noch auf Maus und Tastatur reagierst, aber das ist eher nur für Testzecke und zum Lernen tauglich.
Irgendwann wird das hakelig und umständlich.
Aber zum Lernen ist das erst mal völlig in Ordnung. Threads zu verwenden ist aufwendig und eher für umfangreichere (längere) Positionsberechnungen die Ergebnisse dann innerhalb der
VCL darzustellen muss wieder synchronisiert werden. Das heißt, man muss genau überlegen, was man wie und warum in einen Thread auslagert.
Wir hatten hier
https://www.delphipraxis.net/175033-...-schlecht.html mal ein paar Überlegungen zu dem Themenbereich angestellt und bei #59 habe ich mal ein kleines Testprojekt vorgestellt.
3) Ein Haltepunkt sollte auch im Constructor funktionieren. Vermutlich wird der bei Dir nicht korrekt aufgerufen.