Tarry hat folgendes geschrieben: |
Xentar hat folgendes geschrieben: | Und was machst du, bevor der Fehler kommt? Auf welchen Button klickst du, wie oft?
Ich kann den Fehler hier nicht nachstellen.. |
Ich beende das Prog einfach über das X oben rechts, das ist alles... |
Ohne auf einen button zu klicken, einfach Programm starten und wieder beenden? Das kann ich ja fast nicht glauben.
Beim Starten der Anwendung wird laut Quellcode nur ein Randomize aufgerufen. Wenn das schon Fehler verursacht, solltest du mal deinen Rechner überprüfen.
Konnte den Fehler nun aber nachstellen, wenn ich auf den mittleren Button klicke, und DANN das Programm beende.
Wenn ich das Programm selber kompiliere (Delphi 2007) tritt der Fehler allerdings nicht auf.
Probier mal: Projekt -> Projekt "<name>" erzeugen
Ansonsten versuch mal: Projekt -> Optionen -> Compiler: "Bereichsprüfung" und "Überlaufprüfung" anhaken. Versuchs dann nochmal.
Ich vermute, dass es irgendwelche Probleme mit dem dynamischen Array gibt.
Edit:
Eine mögliche Fehlerquelle hab ich grad:
Delphi-Quelltext
1:
| SetLength(Gezogene, lbSpieler.Count-1); |
Warum -1 ? Das brauchst du an dieser Stelle nicht - ganz im Gegenteil: Dadurch ist das Array um ein Feld zu klein und in der Zeile
Delphi-Quelltext
danach überschreibst du dir dann den Speicher