Du solltest vor dein cos(winkel) noch einen Faktor setzen, da sonst dein round darunter Probleme machen wird.
Und auch das ist noch zu viel gedacht. Wenn du nur an den Schlägern und den Wänden abprallen willst, reicht es einfach eine der Geschwindigkeiten umzudrehen. Also:
Delphi-Quellcode:
doube vx, vy;
if (Ball.y<10 or Ball.y > form.Height-10 ) then vy = -vy;
Das gleiche noch mit x und anstatt der 10 einen passenderen Wert. Und fertig. So einfach.
Zur Bewegung einfach einen Timer nehmen und alle x ms (x =x +vx ) ausführen. Für ein einfaches Pong reicht das auf jeden Fall.
Erwarte das Beste und bereite dich auf das Schlimmste vor.