Mein (gegen)Tip: Bleib beim Canvas, ist definitiv einfacher und verständlicher für den Anfang. (Danach kann mans immer noch auf OGL oder DX ausweiten)
Zu deinem Problem:
betrachten wir folgende Zeile genauer:
if posx <= -50 then geschwx:= - geschwx ;
du fragst einfach ab, ob er auf der linken seite abprallt.
dabei darf er nicht ganz an der seite abprallen, sondern auf höhe des buttons, und auf dessen x-koordinate
also:
Delphi-Quellcode:
if posx <= Button1.Left + Button1.Width - 50 then
begin
//Also wenn er rechts da irgendwo anstößt
if (posy > Button1.Top) and (posy < Button1.Top + Button1.Height) then
//Wenn der ball auch noch auf der richtigen höhe is
geschwx := - geschwx
else
//Game over, der ball is im aus
end;
Um ein eigenes Bild für den Ball verwenden zu können, kannst du dir evt. mal
TBitmap anschaun