Zitat von
eif:
Delphi-Quellcode:
m:=m+1;
explode[m].zeit:=start;
explode[m].x:=p1x;
explode[m].y:=p1y;
das programm spukt auch keinen fehler aus.. nur sobald genau dies passieren soll sagt mit delphi:
"Im Projekt Project1.exe ist eine
Exception der Klasse EAccesViolations afgetreten. ... "
weiß nich warum das so ist..
Hi,
dass Du den Teil postest, für den der Compiler keinen Fehler meldet ist dann aber schon eher verwunderlich. Da steckt dann (syntaktisch) sicherlich auch kein Fehler drin. Interessant wäre dazu dann noch der Aufruf und was Du vorher machst, ganz ohne fällt es deutlich schwerer Dir zu helfen!
An sich wird der Fehler EAccessViolation immer dann ausgelöst, wenn Du auf einen ungültigen Speicherbereich zugreifen möchtest. Dazu gehören Objekt-Referenzen, die nicht auf ein Objekt zeigen oder Zugriffe auf Zeiger und Arrays, die nicht initialisiert wurden. Hier würde ich mal grob darauf tippen, dass es an dem zitierten Code-Ausschnitt liegt. Welchen Wert hat m+1? Und was steht im Array explode an dieser Stelle? Ist da schon etwas? Ist das ein gültiger Index? Usw...
Wahrscheinlich findet hier der Zugriff auf eine ungültige Speicherstelle statt.
An sich kannst Du den Fehler eingrenzen, in dem Du in deinem Quellcode einen Breakpoint (F5) in der Zeile wo die Methode aufgerufen wird setzt. Dann springst Du mit F7 in die Einzelschritt ausführung und läufst über die Zeilen mit F8 rüber oder gehst auch dort mit F7 in die jeweiligen einzelnen Schritte (soweit welche stattfinden). Damit solltest Du die Zeile die den Fehler auslöst recht schnell finden. Während das Programm unterbrochen ist (Du also das Weiterlaufen steuerst) kannst Du mit STRG+F7 auch die Werte der Variablen und Methoden auswerten!
Gruß Der Unwissende