Autor Beitrag
King555
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 14.04.04 10:17 
Ich habe ein in Delphi geschriebenes Programm. Der Fehler, den ich hier beschreibe, tritt sowohl in der Delphi 5 Version meines Programms, als auch in der Delphi 6 Version auf.

Das Programm läuft unter Windows NT 4, Windows 2000 und Windows XP absolut bestens. Unter Windows 98 garnicht, sobald man das Programm startet, kommt sofort (!) eine Fehlermeldung die ungefähr lautet "Für dieses Programm steht nicht genügend Arbeitsspeicher zur Verfügung.". Andere Betriebssysteme habe ich nicht getestet.

Die Fehlermeldung kommt noch vor jeglichem Quellcode, also vor dem "begin" in der Projektdatei (*.dpr).

Diese Meldung kam vor einiger Zeit noch nicht, aber nun kommt sie und ich habe keine Ahnung, woran es liegen kann. Wie gesagt, es tritt nur unter Windows 98 auf.

Ich habe schon stundenlang mit Google/Google Groups gesucht und auch sehr viele Beiträge gefunden, die das selbe Problem beschreiben, aber ich habe noch keine Lösung gefunden.

Einige Daten meines Programms:

Art: Datenbankanwendung (mit BDE)
Dateigröße: 10,7 MB
Spezielle benutzte Komponenten: ReportBuilder 7.03, DeveloperExpress Komponenten

Kennt jemand eine Lösung oder einen Lösungsansatz? Ich verzweifle so langsam. Vielen Dank schonmal für eure Antworten!
GlowWorm
Hält's aus hier
Beiträge: 9

Win 98 SE
D7 Entp
BeitragVerfasst: Mi 14.04.04 10:29 
AFAIR langt es, mehr Arbeitsspeicher zu kaufen. :)
Es könnte höchstens daran liegen, dass du einen zu großen festen Array definiert hast, sowas wie
ausblenden Delphi-Quelltext
1:
array[2147483647,2147483647of real					

aber da liegt das Limit IIRC bei 2GB, also ausreichend hoch. Dann müsste die Fehlermeldung aber später kommen. Manchmal erkennt Win98 aber auch nicht den kompletten Arbeitsspeicher.

Moderiert von user profile iconMotzi: Doppelposting entfernt

_________________
Dies ist ein Text, der an jeden Beitrag von Dir angehängt werden kann. Es besteht eine Limit von 255 Buchstaben.


Zuletzt bearbeitet von GlowWorm am Mi 14.04.04 10:30, insgesamt 1-mal bearbeitet
UC-Chewie
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 531

WinXP
D5 Ent
BeitragVerfasst: Mi 14.04.04 10:33 
Wenn es unter WinNTff läuft, aber unter Win9x nicht, kann es durchaus an der Anzahl der verfügbaren Respurcen liegen. Unter Win9x hast du nur 16xxx (2^16 halt) Handles zur Verfügung. Wenn die voll sind, geht nichts mehr. Allerdings solltest du dann eine EOutOfResources-Exception kriegen und keine EOutOfMemory :?

_________________
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
King555
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 14.04.04 10:45 
Der Windows 98 Rechner hat 256 MB Arbeitsspeicher, genügend freien Festplattenspeicher für die temporäre Auslagerungsdatei und nach dem Hochfahren 90% freie Systemressourcen. Also zuwenig Speicher ist das bestimmt nicht (mein NT4 Entwicklungsrechner hat auch 256 MB RAM). Und es kommt keine Delphi-Fehlermeldung, sondern eine Windows-Fehlermeldung (denke ich zumindest).

Wenn es an zuvielen Handles liegt, wie kann ich für weniger Handles sorgen bzw. wie kann ich soviele Handles erzeugen, dass ich diese Fehlermeldung in einem anderen Programm reproduzieren kann?

Edit: Wenn ich das Programm vollständig gestartet habe, dann zeigt mir der Windows NT4 Taskmanager an, dass das Programm 60 Handles belegt. Ich denke mal, das ist nicht zuviel.
King555
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 15.04.04 11:00 
Hat sonst noch jemand irgendwelche Tipps? Ich habe bisher noch keine Lösung gefunden...
Natti
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 50



BeitragVerfasst: Do 15.04.04 13:13 
Hast du mehrere Formulare? Ladest du beim Programmstart auch alle?
Wenn ja, dann versuche mal aus "Automatisch erzeugen" "Verfügbare Formulare" (Projekt/Optionen) zu machen.
King555
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 15.04.04 14:01 
Mehrere Formulare ist gut, das Programm hat hunderte von Formularen. Aber nur zwei werden beim Programmstart geladen, außerdem noch einige Datenmodule. Aber daran kann es nicht liegen, denn 1.) habe ich mal so gut wie alles rausgenommen und dann funktionierte es immer noch nicht, 2.) konnte ich den Fehler in einer neuen Anwendung mit sehr vielen geladenen Formularen nicht reproduzieren und vor allem 3.) tritt der Fehler schon auf, bevor irgendein Formular erzeugt wird.