Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - programm läuft aus dem ruder


klausiemausie - Do 05.02.09 01:07
Titel: programm läuft aus dem ruder
Project2.exe raised exception class EReadError with message 'Error reading Land.Lines.Strings: Out of System ressoure. Process stopped.
diese fehlermeldung bekomm ich ziemlich häufig beim starten meines programms
ich weiss absolut nicht, woran das liegt, ich habe nie irgendwo eine komponente angelegt, die ich mit land.lines.strings in verbindung bringen könnte
vielleicht kennt jemand von euch diese fehlermeldung
gruss klaus


Narses - Do 05.02.09 01:13

Moin!

TGlaskugel.GetLastError(''); hat folgendes geschrieben:
Not enough actual parameters, could not complete request.
cu
Narses


jaenicke - Do 05.02.09 01:16

Du hast nicht zufällig ein Memo land? Und du lädst da nicht zufällig beim Start mit land.Lines.LoadFromFile oder so eine Datei?

Wenn nicht: Was machst du denn beim Programmstart? (in OnCreate / OnShow)


klausiemausie - Do 05.02.09 01:31

hm jo habe ich, ich würde das jetz gerne ändern, dass das n stinknormales editfeld ist, womit sich das problem gelöst hätte, aber jetzt zeigt mir mein delphi meine unit nicht mehr an, woran kann das liegen?


jaenicke - Do 05.02.09 01:38

Welche Delphiversion hast du denn? Drück einmal Strg + F12, steht die Unit da nicht in der Liste?

Zum Laden könntest du eine TStringList verwenden.


klausiemausie - Do 05.02.09 01:41

gut meine form hat er mir wieder angezeit, habe die land memo in nen land edit umgewandelt, aber ich bekomme immer noch ne fehler meldung diesmal:
Exception EOutofRessources in module Project2.exe at 00020370. Out of system ressources.
das dumme is ja, vor ein paar stunden hat das alles noch funktioniert, dann hab ich allen units ein neuen icon verpasst, und jetz kommen diese fehlermeldungen, nich dass das damit zusammenhängt?

---Moderiert von user profile iconNarses: Beiträge zusammengefasst---

ich hab die lösung für das problem gefunden, und zwar hatte ich in einer anderen form eine memo angelegt, und da die spielanleitung reingeschreiben, was wahrscheinlich nicht so einfach möglich ist. was nehm ich denn am besten für eine komponente um ganze texte anzeigen zu lassen?
gruss klaus

---Moderiert von user profile iconNarses: Beiträge zusammengefasst---

aber trotzdem ist mein eig problem nicht gelöst, ich bekomme zufällig beim starten diese fehlermeldung. und das nicht immer sondern mal beim 1. mal, mal beim 3. etc.
jemand ne idee?(langsam komme ich mir nervig vor)
gruss klaus


jaenicke - Do 05.02.09 02:08

user profile iconklausiemausie hat folgendes geschrieben Zum zitierten Posting springen:
was nehm ich denn am besten für eine komponente um ganze texte anzeigen zu lassen?
Wie lang ist denn deine Anleitung? :shock:
Normalerweise ist ein Memo schon richtig.

Die Frage ist, ob durch die Änderung der Fehler nicht nur zufällig nicht mehr auftritt. Denn wenn du ein Speicherleck hast oder falschen Speicher überschreibst, dann äußern sich solche Fehler zufällig.

// EDIT:
user profile iconklausiemausie hat folgendes geschrieben Zum zitierten Posting springen:
aber trotzdem ist mein eig problem nicht gelöst, ich bekomme zufällig beim starten diese fehlermeldung.
Dachte ich es mir doch. ;-)
Beantworte doch einmal die Frage von vorhin:
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Was machst du denn beim Programmstart? (in OnCreate / OnShow)


Die Fehlermeldung kann bei vielen Gelegenheiten auftreten. Überschriebener Speicher (Stichwort: dynamische Arrays), Speicherlecks (nicht freigegebene Ressourcen), ...


klausiemausie - Do 05.02.09 11:27

oh da passiert vieles, jedem land von europa werden starteinheiten zugewiesen und eine zugehoerigkeit, halt spieler 1 oder 2, das regle ich mit einem array zugehoerigkeit und region für die einheiten. weiterhin wird angezeigt, welcher spieler dran ist, die laufvariable für die runden wird auf 0 gesetzt, ja und das ist auch schon alles was in der unit passiert bei der er immer abschmiert.
das kuriose ist, heute früh hab ich das problem nicht mehr, ich habe in dieser besagten unit meinen selbst gemachten icon wieder raus gemacht und schon gehts? wie kann das denn sein?


jaenicke - Do 05.02.09 15:58

user profile iconklausiemausie hat folgendes geschrieben Zum zitierten Posting springen:
ja und das ist auch schon alles was in der unit passiert bei der er immer abschmiert.
Es geht nicht nur um die Unit, die Units sind zwar vom Quelltext her getrennt, im Speicher aber nicht. Der Fehler kann überall liegen wo etwas beim Start passiert.

user profile iconklausiemausie hat folgendes geschrieben Zum zitierten Posting springen:
das regle ich mit einem array zugehoerigkeit und region für die einheiten.
Du verwendest dynamische Arrays? Das habe ich ja bereits als mögliche Ursache geschrieben "Überschriebener Speicher (Stichwort: dynamische Arrays)".

Schalte einmal die Bereichsprüfung an (Projekt --> Optionen --> Compiler --> Laufzeitfehler --> Bereichsüberprüfung). Oft wird dabei ein bestehender Fehler bei dynamischen Arrays erkannt. (Leider durch einen Fehler dieser Funktion nicht immer wie wir in einem anderen Thread im Forum erkennen mussten.)

user profile iconklausiemausie hat folgendes geschrieben Zum zitierten Posting springen:
ich habe in dieser besagten unit meinen selbst gemachten icon wieder raus gemacht und schon gehts? wie kann das denn sein?
Dafür habe ich vor einer Weile eine schöne Erklärung geschrieben. :D
http://www.delphi-forum.de/viewtopic.php?p=527022#527022