![]() |
Re: Zu wenig Arbeitsspeicher
Hallo Medium,
mein Programm arbeitet mit Images. Der Nutzer kann ein Bild laden - darin zeichnen - und dieses Bild dann im Befund ausgeben. Ich verwende die Befehle Image.Picture.Bitmap = nil, Image.Picture = nil, Image.Picture.Bitmap.FreeImage und Image.Picture.Bitmap.ReleaseHandle um das Image zu leeren und somit Speicherplatz zu sparen. Aber nicht nur mein Programm arbeitet mit Bildern, auch 2 der anderen Programme (sog. Viewer) sind Bildbearberarbeitungs- und betrachtungsprogramme. Ich suche noch nach einer Möglichkeit, daß mein Programm einigermaßen ordentlich beendet werden kann, wenn dieser Fehler auftritt. Momentan funktioniert weder mein noch die anderen Programme, auch der Taskmanager mag nicht. Gruß Ines |
Re: Zu wenig Arbeitsspeicher
Startet den Taskmanager schon im Voraus und laßt ihn im Hintergrund laufen.
Das sollte die Möglichkeit erhöhen, daß man ihn dann noch nutzen kann, wenn es denn so weit ist. |
Re: Zu wenig Arbeitsspeicher
Zitat:
Also Taskmanager an, Spalten "Handles", "BENUTZER-Objekte" und "GDI-Objekte" eingeblendet und schauen wo hier Zahlen >> 1000 auftreten. Dieser Prozess ist dann der Schuldige. Du kannst hier eigentlich gar nix mehr machen da selbst ein ShowMessage u.U. fehl schlägt. |
Re: Zu wenig Arbeitsspeicher
Von Image.Picture.Bitmap.ReleaseHandle lass mal die Finger.
Damit erreichst du genau das Gegenteil von Speicher sparen. Du teilst der Bitmap damit lediglich mit, das du ihr das GDI-Handle auf die eigentlichen Bilddaten abnimmst und dich um dessen Freigabe (inclusive GDI-Speicher) später selbst kümmerst. Und das geschieht vermutlich nicht... Statt dessen einfach:
Delphi-Quellcode:
Image.Picture.Bitmap := nil;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz