Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi "Zugriffsverletzung" und "Abstrakter Fehler" (https://www.delphipraxis.net/192090-zugriffsverletzung-und-abstrakter-fehler.html)

braucheHilfe 19. Mär 2017 14:26

"Zugriffsverletzung" und "Abstrakter Fehler"
 
Liste der Anhänge anzeigen (Anzahl: 1)
Gute Tag allerseits,
ich bin gerade für die Schule dabei ein Spiel zu programmieren.
Mein Teil der Gruppenarbeit ist so weit eigentlich schon fertig, aber ich hab ein unschönes Problem.

Wenn ich das Programm in Delphi öffne und mich mindestens ein Mal nach links oder rechts bewege und einen Schuss setze und das Programm dann wieder schließen will bekomme ich die Fehlermeldung
"Im Projekt Poject1.exe ist eine Exception der Klasse EAccessViolation aufgetreten. Meldung: 'Zugriffsverletzung bei Adresse 004032CC in Modul 'Projekt1.exe'. Lesen von Adresse BAADF00D'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen."
Wenn ich direkt die .exe ohne Delphi 7 starte ploppen bei mir nach dem schließen immer mehr Fehlermeldungen auf die "Abstrakter Fehler" zurückgeben.

Ich habe keine Ahnung wo mein Fehler liegt und wie ich das beheben soll. Im Anhang ist mal das Programm mit allen Dateien. Es wäre wirklich nett, wenn ihr euch das mal angucken könntet und mir sagen könntet was mein Problem ist/wie ich es lösen kann.

Danke

haentschman 19. Mär 2017 15:01

AW: "Zugriffsverletzung" und "Abstrakter Fehler"
 
Hallöle...8-)

Ich habe nur XE als kleinste Version. Damit startet es. :wink:
Aber:
Delphi-Quellcode:
Picture.LoadFromFile('Schuss.bmp');
kann in die Hose gehen. Besser:
Delphi-Quellcode:
Picture.LoadFromFile('X:\Blubb\Schuss.bmp');
Schau dir das mal an: http://docwiki.embarcadero.com/Libra...ystem.ParamStr

braucheHilfe 19. Mär 2017 15:55

AW: "Zugriffsverletzung" und "Abstrakter Fehler"
 
Zitat:

Zitat von haentschman (Beitrag 1364741)
Ich habe nur XE als kleinste Version. Damit startet es. :wink:
Aber:
Delphi-Quellcode:
Picture.LoadFromFile('Schuss.bmp');
kann in die Hose gehen. Besser:
Delphi-Quellcode:
Picture.LoadFromFile('X:\Blubb\Schuss.bmp');

Danke, aber mein Problem ist ja nicht, dass es nicht startet, sondern dass ich mit Fehlermeldungen zugespammt werde wenn ich das Programm schließe.
Und wegen den Bildpfaden mach dir da mal keine Sorgen. Das ganze Zeug bleibt immer in diesem Ordner.

Danke also, aber mein Problem hat das jetzt nicht wirklich gelöst :?

ergeka 19. Mär 2017 16:48

AW: "Zugriffsverletzung" und "Abstrakter Fehler"
 
Hallo,

ich kann das hier nicht nachvollziehen.
Deine exe funktioniert bei mir ohne Meldungen beim Schließen.
Auch D10.1 öffnet und compiliert Dein Projekt ohne Probleme.
Die D10.1 exe läuft und schließt ohne Meldungen.

Gruß

Ralf

a.def 19. Mär 2017 16:48

AW: "Zugriffsverletzung" und "Abstrakter Fehler"
 
Ich habe mir deinen Code nicht angeguckt aber:
wenn dein Programm beendet wird muss doch wohl auf irgendetwas zugegriffen werden, was du vorher schon mit Free freigegeben hast.

Edit:
habe es gerade mal getestet. Vergess was ich oben geschrieben habe. Bei mir funktioniert es auch vollkommen ohne Probleme.

Zitat:

Wenn ich das Programm in Delphi öffne
Und wenn du es ohne Delphi öffnest?

braucheHilfe 19. Mär 2017 20:31

AW: "Zugriffsverletzung" und "Abstrakter Fehler"
 
Zitat:

Zitat von a.def (Beitrag 1364761)
Und wenn du es ohne Delphi öffnest?

Direkt die .exe meine ich.

braucheHilfe 19. Mär 2017 20:47

AW: "Zugriffsverletzung" und "Abstrakter Fehler"
 
Ich hab die beiden Fehlermeldungen und wann sie entstehen mal aufgenommen.
Ich hoffe doch, dass hilf euch weiter eine Lösung des Problems zu finden.
https://youtu.be/GOqp23dZF3k
https://youtu.be/1HyzKldD9GQ

a.def 19. Mär 2017 21:15

AW: "Zugriffsverletzung" und "Abstrakter Fehler"
 
Kannst du einen Test machen und statt den Tasten auf der Tastatur mal die Buttons zum Bewegen und Schießen benutzen?

Lemmy 20. Mär 2017 06:22

AW: "Zugriffsverletzung" und "Abstrakter Fehler"
 
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

haentschman 20. Mär 2017 06:44

AW: "Zugriffsverletzung" und "Abstrakter Fehler"
 
Moin...:P
Zitat:

Und wegen den Bildpfaden mach dir da mal keine Sorgen. Das ganze Zeug bleibt immer in diesem Ordner.
...das kann ich so nicht stehen lassen. :warn:
Lese dir den Thread aufmerksam durch.
Zitat:

KEINE relativen Pfade verwenden, denn das Arbeitsverzeichnis muß nicht dem Programmverzeichnis entsprechen
http://www.delphipraxis.net/72638-application-path.html


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:23 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz