Ball bounct zu weit

Blöde Überschirft, trifft es aber auf den Pixel genau.

www."Bekanntes Videoportal".com/watch?v=BiBdKwYn99o

Habe das wie in dem Video gemacht aber der Ball gleitet über den unteren und den rechten Rand hinaus und es entstehen ScrollBars. Eigentlich müsste der Ball abprallen wenn er auf den Fensterrahmen trifft und nicht noch ein paar Pixel weiter hüpfen. Wo ist der Fehler?

LG Klabauter

Hallo,

Wo ist der Fehler?

Gute Frage, wir sind aber leider keine Hellseher.
Es wäre recht hilfreich, wenn du uns hier deinen Code zeigts, dann kann wahrscheinlich auch jemend sagen, was daran falsch ist.

Viele Grüße, Jochim

Der Code entspricht genau dem Referenzdesign aus dem Video
Videoname:frowning:Free Pascal Tutorial 22 - System Timer - Lazarus - Programming On The Mac).
Mit dem Unterschied das ich nicht Lazarus sondern Delphi6 nutze.

unit Bouncing_Ball1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls;

type
TForm1 = class(TForm)
Timer1: TTimer;
Shape1: TShape;
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
MoveRight:boolean;
MoveUp:boolean;
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
begin
if MoveRight=True then
Shape1.Left:=Shape1.Left+1
else Shape1.Left:=Shape1.Left-1;

if Shape1.Left

Wenn Du statt Form1.Width und Form1.Height Form1.ClientWidth und Form1.ClientHeight benutzt, sollte es funktionieren. In Form1.Width bzw. Height ist der Fensterrahmen enthalten.

Manfred

Danke Manfred. Jetzt geht es.
Woher weiß man sowas?