Diesmal habe ich, denke ich, wirklich ein Problem, auf das ich mir keinen Reim machen kann.
Ich habe ein dynamisches Array "VolkDaten" dessen Inhalt ich in ein IniFile schreiben will. Das Array wird vorher dimensioniert und auch gefüllt.
Hier mal der Code der Funktion zum Schreiben in das IniFile:
An der fett markierten Zeile bricht das Programm dann mit einer EAccessViolation ab. Das interessante und für mich seltsame, an der Geschichte ist, daß ich vorher eine Funktion hatte, die das Array korrekt in ein IniFile geschrieben hat. Die einzigen Änderung die ich vorgenommen habe um zu obiger Prozedur zu kommen waren:
- Das Array als Property der Klasse TPeople eingeführt und die Prozedur zu einer Methode selbiger Klasse gemacht.
- Einige Schleifen eingeführt
Wenn ich obigen Code als eigenständige Prozedur aufrufe und Volkdaten[i] über das Objekt People aufrufe, kommt derselbe Fehler. Selbst wenn ich Name oder BuildingHP(b) durch konstante Werte ersetze kommt der Fehler, ebenso wenn ich die Schleife entferne und b durch einen festen Wert ersetze.
Die ersten beiden WriteBefehle werden ausgeführt, allerdings taucht der Wert von Nicht im IniFile auf.. wenn ich Name durch einen konstanten String ersetze allerdings schon. Aber wie gesagt, wenn ich in der abbrechende Zeile gar nicht mehr auf VolkDaten[i] zugreife taucht der Fehler trotzdem auf.
Ich hab ehrlich gesagt keine Ideen mehr wo der Fehler seine Ursache haben könnte, geschweige denn wie er zu beheben ist.
Falls ihr noch weitere Codeschnipsel braucht, einfach sagen.
ResetVolkData funktioniert übrigens tadellos.