Du solltest auf Zugriffe wie
form1
verzichten.
Innerhalb der Form-Methoden kannst du die Eigenschaften direkt ansprechen
Width
oder auch mit
Self.Width
. Denn ein Umbenennen der Form (z.B. in etwas Sinnvolles wie
FSpiel
) haut dir den Code auseinander, genauso, wenn du eine weitere Instanz der Form erzeugst.
In deiner Anwendung hast du diese Routine innerhalb von
TPunkt
. Dort hast du ein Feld
Fenster
, welches wohl auf die Form verweisen soll, dann benutze das Feld doch auch
Weiterhin fällt mir auf, dass du mit
Width - 33
arbeitest ... möchtest du den Rand des Fensters berücksichtigen?
Entweder fragst du die Form und das System, wie breit der Rand denn wirklich ist, oder (viel einfacher) du nimmst
ClientWidth
, das ist exakt die innere Breite ohne Rand
- analog gibt es dazu natürlich auch
ClientHeight
Delphi-Quellcode:
case rRichtung of
1:
begin
rpunkt.X:= rpunkt.X +3;
if rpunkt.Y > Fenster.ClientWidth
then
rRichtung := 2;
end;
2:
begin
rpunkt.X:= rpunkt.X -3;
if rpunkt.X < 0 then rRichtung := 1;
// Sleep(25);
end;
end;
Fenster.Label1.Caption := inttostr( rRichtung );
// Sleep(25);
und den gesamten Code bekommt man auch noch kürzer:
Delphi-Quellcode:
// rRichtung ist entweder 1 oder -1
rPunkt.X := rPunkt.X + rRichtung * 3;
if ( rPunkt.X < 0 ) or ( rPunkt.X > Fenster.ClientWidth ) then
rRichtung := - rRichtung;
Fenster.Label1.Caption := inttostr( rRichtung );
// Sleep(25);