Hallo
DP,
ich wusste nicht genau wo ich meine Frage stellen sollte und so stelle ich sie hier.
Also ich bekomme bei meinem Programm folgende Fehlermeldung:
Im Projekt Project2.exe ist eine
Exception der Klasse EAccessViolation aufgetreten. Meldung: Zugriffsverletzung bei Adresse 0046BBB3 in Modul 'Project2.exe'. Lesen von Adresse 00000028'. Prozess wurde angehalten. Mit einzelne Anweisung oder Start fortsetzen.
Ich habe diese Fehlermeldung bei dem Programm schon oft erhalten aber bis jetzt immer "umgehen" können.
Nun habe ich aber keinen Plan.
Nun aber zum Programm:
-Das Programm benutzt DelphiX - Komponenten (DXDraw, DXTimer, DXImageList, DXInput)
-Ich habe viele *.bmp Bilder ( da es ja nicht mit jpeg geht ) --> eines dieser Bilder ist 7-11 MB
groß und mehrere kleinere.
-2 Formen (wenn man bei der einen auf Button 1 klickt öfnet sich das SpielFeld und es werden alle
Bilder gezeichnet ( das Ladeanzeige einfach übersehen --> ist noch nicht fertig )
-Sobald man, wenn man das SpielFeld sieht, den Spieler bewegt, also die Pfeiltasten drückt, dann
kommt die oben genannte Meldung
-Ich habe schon in der
DP nachgelesen und nur erfahren das es was mit falschen arrays zu tun hat -
in der procedure TSpieler.DoMove(...); gibt es mehrere solcher arrays in for-schleifen gepackt -
nur sehe ich den Fehler nicht
{Das Programm und der Quelltext gibts hier ( 4,4 MB im Zip )}
Ich hatte bei meinen letzten versuch diese Meldung zu umgehen einige Einstellungen in Delphi Vorgenommen:
Unter Tools/Debugger Optionen/Sprach-Exceptions --> da habe ich EAccesViolation hinzugefügt (später wieder raus)
Unter Tools/Debugger Optionen/BS-Exceptions --> da habe ich bei Schutzverletzung vom Debugger und behandelt starten reingemacht (später wieder raus)
Ich hoffe nicht das das was damit zu tun hat.
//ich hoffe ihr könnt meinen Quelltext entziffern
Kann es auch vllt daran liegen, das ich zuviele Bilder im Programm habe? Ich kenne mich leider nicht mit EAccesViolation aus und was das mit dem Speicher zu tun hat ( DeplhiHilfe hat mir auch nicht grade geholfen....)
Ich hoffe ihr könnt mir helfen, denn das Programm lief einwandfrei bis ich ein neues Bild in die DXImageList geladen habe (bild 26)
MfG Hille