Autor Beitrag
Stefan S.
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 184


D5
BeitragVerfasst: Sa 25.03.06 22:54 
Langsam bin ich echt am verzweifeln. Ich bin immer noch dabei, ein Quiz-Spiel zu überarbeiten, das ich vor mehreren Jahren mal gemacht habe. Das heisst, eigentlich wäre ich fertig, aber jetzt ist wieder ein neuer Fehler aufgetreten und ich finde die Ursache nicht.
Die Fragen für das Quiz werden in einfachen Textdateien gespeichert und können mittels eines Editors eingegeben werden. Jetzt habe ich an die 50 neue Fragen eingegeben (vorher waren es an die 30) und auf einmal kommt im Spiel beim Ende der Prozedur, in der die aktuelle Frage eingelesen wird, eine Fehlermeldung "EAccessViolation". Das kuriose: Bevor ich so viele Fragen eingegeben habe, hat alles prima funktioniert, dementsprechend war ich auch sehr verwundert, dass es auf einmal ein Problem gibt, das das Spiel zum Absturz bringt.
Mit der Fragendatei ist alles in Ordnung, die habe ich schon unter die Lupe genommen. Auch kommt der Fehler nicht immer, sondern nur in den meisten Fällen, eine Regelmäßigkeit, bei welchen Fragen er auftritt, konnte ich nicht feststellen. Noch komischer finde ich, dass die Fragen und Antworten teilweise noch nach dem Fehler korrekt angezeigt werden können, wenn ich beim Compiler nochmal auf "Start" klicke, nur irgendwann kommt "Zugriffsverletzung blablabla Prozess angehalten" und dann geht nichts mehr.
Hat irgendwer eine Idee, woran das Problem liegen könnte? Fragt lieber nicht nach dem Quellcode, wie gesagt liegt die eigentliche Programmierung viele zurück, und damals hatte ich noch eine saumäßige Programmierweise, die schwer zu durchblicken ist. Nur funktioniert hat es eben, bevor es die neuen Fragen gab. Ach ja, wenn ich sämtliche Fragen wieder lösche, kommt der Fehler nicht mehr, wenn ich sie nur zur Hälfte lösche, kommt er noch, aber seltener...
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: So 26.03.06 09:31 
Ich möchte noch einmal ausdrücklich darauf hinweisen, dass meine Kristallkugel auf Weltreise ist und mir daher bis Ende Mai nicht zur Verfügung steht ... Ich wäre daher über etwas Source (z.B. aus der betroffenen Routine) sehr dankbar ...

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: So 26.03.06 11:23 
Ein allgemeiner Tip:

Wenn der Fehler wieder auftritt, im Debugger anhalten und das Debugfenster "Aufrufstack" begutachten. Da siehst du dann wo genau der Fehler aufgetreten ist (bzw. welche Routinen denn letztendlich zum Fehler führten).

Cu,
Udontknow
aim65
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 312

Win 9x, Win XP
Delphi 3pro, 7PE
BeitragVerfasst: So 26.03.06 14:32 
Meine Kristallkugel ist sogar ganz kaputt - daher :gruebel: :gruebel:
Trotzdem eine Frage in die Dunkelheit:
Hast Du evtl. die Texte in einem Array liegen, dessen Größe Du irgendwo mit [30] oder so dimensioniert hattest? Könnte ja sein, daß Du den nicht angepasst hast.
Nur so'n Gedanke im Nebel...
Stefan S. Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 184


D5
BeitragVerfasst: Fr 07.04.06 14:23 
Du machst mir Angst, ich glaub du hast wirklich eine Kristallkugel... Verdammter Hellseher! :D
Ich hab selber nochmal versucht, das ganze umzuprogrammieren und bin dabei tatsächlich auf diesen einen Array gestoßen, der dessen Größe genau 30 war. ^^ Ist mir jetzt fast ein bisschen peinlich, dass ich diese geradezu offensichtlichste Fehlerquelle übersehen habe... Jetzt scheint jedenfalls alles prima zu funktionieren.