Einen Fehler, nein zwei, habe ich schon gefunden. Das Timer Ereignis war nicht mit dem Timer verknüpft. Und setz mal einen Breakpoint (F5) auf for-Zeil:
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var g,gg: byte;
begin
for g:=1 to GasteilchenMax do zeige_nichtGasteilchen(Gasteilchen[g]);
Und fahr mal mit der Maus über die Variablen...
Dann hast du hier
DeltaGeschwindigkeit_x:= 2 * Masse2 * DeltaMasse_x * (DeltaMasse_x * DelGeschwindigkeit_x + DeltaMasse_y * DelGeschwindigkeit_y) / ((sqr(DeltaMasse_x) + sqr(DeltaMasse_y)) * (Masse1 + Masse2));
noch eine ungültige Fließkommaoperation, weil alle Werte null sind wahrscheinlich.
Das alles hättest du schon mal selber rausfinden können.