Ok, hat sich jetzt erledigt, ich weiß wo das Problem war
if Ball.Top = Schlaeger1.Top then begin
Ich hab diese Stelle, die ja nach dem else-Abschnitt kommt, ausgeklammert. Delphi hat die Stelle ignoriert, weil die Ball-Position ja oben bereits abgefragt worden war und unten nochmal. Demnach müsste der Ball an zwei Positionen GLEICHZEITIG sein
Das hab ich allerdings gemacht, weil mein Ball sonst zu früh gestoppt hat. Also bevor er an den Spielfeldrand kommt. Und ich hab mir dummerweise halt gedacht, dass ich das durch eine erneute Positionsabfrage lösen könnte und den Code erst später ausführen lasse... naja, falsch gedacht