Re: Systemressourcen erschöpft
keine Sorge ... TBitMap ist ein Object und die haben ja keine Referenzzählung (wobei man diese als Objekte auch eigentlich nicht nach Pointer casten muß, um sie irgendwo abzuspeichern/abzulegen)
|
Re: Systemressourcen erschöpft
Zitat:
Ich hatte irgendwie gerade Strings im Hinterkopf als ich das geschrieben habe. :gruebel: |
Re: Systemressourcen erschöpft
Ich habe den Übeltäter :-)
Delphi-Quellcode:
Um Bilder "zu löschen" habe löse ich das Bitmap auf und erzeuge ein neues (Bitmap.Clear gibt es ja nicht).
procedure TDPerson.ClearPicture;
begin if Assigned(FPicture) then // neu eingeführt begin FreeAndNil(FPicture); FPicture := TBitmap.Create; DataChanged; end; end; Diese Methode wurde auch aufgerufen bevor das Bitmap das erste mal erzeugt wurde :oops: Jetzt schließe ich das mit Assigned aus. Das Hauptproblem scheint geklärt :-) Danke für die Hilfe! Stahli |
Re: Systemressourcen erschöpft
Wen du so vile Unterformulare hast, würde ich die auch nicht beim Programmstart alle automatisch erzeugen lassen, sondern zur Laufzeit dynamisch erzeugen.
|
Re: Systemressourcen erschöpft
Ja, das mache ich auch.
Ich löse sie dann allerdings nicht wieder auf, da sie immer mal wieder gebraucht werden. Für den Notfall merke ich mir das als Option vor. Nach Klärung des Bitmap-Problems läuft allerdings nun alles perfekt! :-) |
Re: Systemressourcen erschöpft
Zitat:
|
Re: Systemressourcen erschöpft
Kurz zu meinem Konzept dazu:
Die Unterformulare diesen der Datenbearbeitung von Komponenten. VCustom.FormEdit Die Methode VCustom.Select öffnet weist der Eigenschaft je nach Situation ein Bearbeitungsformular zu, positioniert und öffnet dieses. Wurde das betreffende Bearbeitungsformular bisher noch nicht benutzt wird es erzeugt (Eigentümer ist die Application). Das Formular schließt sich i.d.R. automatisch, wenn es deaktiviert wird. Aufgelöst wird es, wenn die Application beendet wird. Die Unterformulare werden imnmer wieder benötigt, daher löse ich sie nicht sofort auf und das führt ja (offenbar) auch nicht zu Problemen... |
Re: Systemressourcen erschöpft
Zitat:
|
Re: Systemressourcen erschöpft
Also ich habe jetzt FastMM4 installiert und nutze den FullDebugMode.
So habe ich noch einige weitere Fehler gefunden, bei denen ich über Referenzen auf bereits aufgelöste Objekte deren Methoden aufgerufen habe. Das habe ich vorher gar nicht bemerkt! Es ist zwar (auch mit dem Textreport) nicht einfach, die betreffenden Fehler aufzuspüren, aber man erhält ein paar gute Anhaltspunkte. Es ist also bei komplexeren Programmen wohl unbedingt sinnvoll, FastMM oder Ähnliches zu verwenden. Wäre natürlich auch nicht verkehrt, wenn Delphi so eine Speicherkontrolle selbst durchführen würde. Welche Alternativen gibt es zu FastMM. Was sind die Vor- und Nachteile? Stahli |
Re: Systemressourcen erschöpft
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz