Forum: Programmieren allgemein
Delphi
by DeddyH,
20. Jun 2013
Wieso "nicht überschreibbar"? Man sollte Objekte nicht mittels Destroy freigeben, sondern mittels Free, und auch nur die Objekte, die man selbst angelegt hat. Das Setzen auf nil im Destruktor schadet zwar nicht, ist aber sinnlos.
Forum: Programmieren allgemein
Delphi
by DeddyH,
19. Jun 2013
Deshalb ja auch mein Hinweis auf den Destruktor. Im Konstruktor werden Objekte angelegt, deshalb sollte es auch einen Destruktor geben, der die wieder abräumt.
Forum: Programmieren allgemein
Delphi
by DeddyH,
19. Jun 2013
Ich habe jetzt nur kurz in 2 der Dateien hineingeschaut. Im Konstruktor fehlt mir jeweils der inherited-Aufruf, Destruktoren fehlen ganz, obwohl hier die privaten Objekte, die im Konstruktor angelegt werden, freigegeben werden sollten. Und wieso sind alle Methoden virtuell, obwohl es keine Ableitungen gibt? Gut, das ist nicht weiter schlimm, aber virtuell nur einfach so sieht auch komisch aus.
Forum: Programmieren allgemein
Delphi
by DeddyH,
19. Jun 2013
mTHintergrund, mTSchlange, mTFutter und mTKopf werden wir wohl alle brauchen.
Und wie mein Vorredner schon sagte, bitte als Anhang ;)
Forum: Programmieren allgemein
Delphi
by DeddyH,
19. Jun 2013
Woher sollen wir das wissen, wenn wir die Klassen nicht kennen? Ich frag ja nicht umsonst die ganze Zeit danach.
Forum: Programmieren allgemein
Delphi
by DeddyH,
19. Jun 2013
Ist es, Du hast uns aber immer noch nicht die Klassen gezeigt.
Forum: Programmieren allgemein
Delphi
by DeddyH,
19. Jun 2013
Wie sehen denn die verwendeten Klassen (THintergund etc.) aus? Und gewöhn Dir lieber gar nicht erst an, mit true oder false zu vergleichen, das kann zu falschen Ergebnissen führen.
Die OnKeyDown-Methode würde ich etwas anders schreiben:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case Key of
VK_LEFT:
Links := True;
VK_Right:
...