Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Unerklärbare Fehler beim beenden
Tarry - Fr 18.04.08 23:15
Titel: Unerklärbare Fehler beim beenden
Hi, ich hab nen kleines Prog geschrieben um Teams zu bestimmen, allerdings kommt beim Beenden immer so nen doofer Fehler :(
Ich hab das komplett Prog (mit Code) mal angehangen, habt ihr ne Idee woher der kommt ?
gruß
Tarry
EDIT: Screen vom Fehler hinzugefügt
Moderiert von
Narses: Topic aus Sonstiges (Delphi) verschoben am Sa 19.04.2008 um 01:36
Xentar - Fr 18.04.08 23:21
Verrat uns bitte nicht, welcher Fehler kommt, oder in welcher Situation... Nein, lass es uns erst selber ausprobieren, wir haben ja alle genug Zeit.
Tarry - Fr 18.04.08 23:23
Xentar hat folgendes geschrieben: |
| Verrat uns bitte nicht, welcher Fehler kommt, oder in welcher Situation... Nein, lass es uns erst selber ausprobieren, wir haben ja alle genug Zeit. |
Hab nen Screen angehängt.
Xentar - Fr 18.04.08 23:28
Und was machst du, bevor der Fehler kommt? Auf welchen Button klickst du, wie oft?
Ich kann den Fehler hier nicht nachstellen..
Tarry - Fr 18.04.08 23:32
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...
EDIT: Nach nem kleinem Test in der Runde hier, siehts so aus, als würde der Fehle r nur bei XP auftreten.
Xentar - Fr 18.04.08 23:39
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
danach überschreibst du dir dann den Speicher
Tarry - Fr 18.04.08 23:47
Xentar hat folgendes geschrieben: |
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. |
Richtig, der Fehler tritt nur dann auf.
Deine Tipps haben leider nichts gebracht, es ist mir ein Rätsel...
Kannst du mal bitte die, von dir erzeugte, exe online stellen ?
Tarry
Tarry - Fr 18.04.08 23:48
Xentar hat folgendes geschrieben: |
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
danach überschreibst du dir dann den Speicher |
DANKE, jetzt klappts !!!
Xentar - Fr 18.04.08 23:50
Kein Thema ;)
Aber ein Tipp fürs nächste Mal: Gleich im ersten Post so viele Informationen wie möglich mitgeben ;)
Tarry - Fr 18.04.08 23:54
Xentar hat folgendes geschrieben: |
Kein Thema ;)
Aber ein Tipp fürs nächste Mal: Gleich im ersten Post so viele Informationen wie möglich mitgeben ;) |
Ja is eigentlich auch nicht meine Art ;) Aber ich sitzt grade auf ner Lan und da ist die Zeit bekanntlich knapp ;)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!