Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.078 Beiträge
 
Delphi 12 Athens
 
#6

AW: Bitte um Hilfe bei Programm (Pong-Spiel, funktioniert nicht korrekt)

  Alt 14. Jan 2014, 18:48
Um es mit anderen Worten zu sagen:

- eine halbwegs "ordentliche" Codeformatierung hilft enorm beim Verstehen von Code, vorallem was wie zusammengehört.
- und "sprechende" Namen für Komponenten helfen noch viel mehr, weil man dann weiß wofür die Komponente ist

Mit dem Debugger sollte man in Grundlegenden Dingen schon zurecht kommen und ihn vorallem vauch verwenden.
- was soll gemacht werden (das weiß man ja selber)
- was macht das Programm wirklich (das sieht man im Debugger)
- - Haltepunkte setzen
- - mit F7/F8 Schritt für Schritt den Code durchgehn
- - sich Werte von Variablen ansehen
Und mit dem Wissen kann man nun die gefundenen Fehler beheben.

Zitat:
Delphi-Quellcode:
procedure TForm1.Start1Click(Sender: TObject);
begin
 with form1 do
horiz:= 4;
horiz2:= 4;
vert:= -2;
timer1.Enabled:= true;
timer2.Enabled:= false;
end;
Delphi-Quellcode:
procedure TForm1.Start1Click(Sender: TObject);
begin
  with form1 do
    horiz:= 4;
  horiz2:= 4;
  vert:= -2;
  timer1.Enabled:= true;
  timer2.Enabled:= false;
end;
Das WITH gehört also nur zur ersten Variable.

Außerdem: Warum greifst du innerhalb von TForm1 auf die Form1?
Du bist ja schon da drin und mußt dir nicht nochmal die (eventuell sogar falsche) Referenz besorgen.
(vorallem wenn die TForm mehrfach erstellt wurde, steht in Form1 nicht unbedingt das, was man möchte)

Zitat:
Delphi-Quellcode:
if ((shape3.Left <= shape1.Left + shape1.width ) and (shape3.Top >= shape1.Top - 10) and (shape3.Top <= shape1.Top + shape1.Height))
then
direction:= 5;
if direction = 1 then
timer1.Enabled:= false;
timer2.Enabled:= true;
end;
Oder das aus Timer1Timer
Delphi-Quellcode:
  if ((shape3.Left <= shape1.Left + shape1.width ) and (shape3.Top >= shape1.Top - 10) and (shape3.Top <= shape1.Top + shape1.Height)) then
    direction:= 5;
  if direction = 1 then
    timer1.Enabled:= false;
  timer2.Enabled:= true;
end;
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (14. Jan 2014 um 18:58 Uhr)
  Mit Zitat antworten Zitat