Guten Morgen,
also, mit Delphi 7 kommt tatsächlich ein Fehler, mit XE4 nicht.
Grund so weit ich das nachvollziehen kann:
Du erstellst beim Start eine Instanz von TSchuss, sobald ein Schuss abgegeben wird, erstellst du gleich nochmal einen Schuss, da Du aber jedesmal deinen Parent und Owner des Schusses (das leider von TImage abgeleitet ist) setzt, führt das dazu, dass diese "KOmponente" mehrfach in der Komponentenliste von TForm landet, was beim Freigeben dann lustige Meldungen erzeugt...
Änderst Du deinen Code in FormKeyPress so, dass Du dort Schuss.Create raus nimmst und dafür Schuss.startschuss(Position + 17, 170) einfügst und die Methode so deklarierst:
Delphi-Quellcode:
procedure TSchuss.StartSchuss(Links, oben: Integer);
begin
Left:=Links;
Top:=Oben;
end;
dann passt das..
wobei da noch ein paar andere Dinge wären... als wichtigste Maßnahme auf jeden Fall noch ein TimerSchuss.ENabled := false bei der Freigabe von Form1...
GRüße