Einzelnen Beitrag anzeigen

Aviator

Registriert seit: 3. Jun 2010
1.610 Beiträge
 
Delphi 10.3 Rio
 
#1

[Erledigt] Preview Handler in VCL erzeugt MemoryLeak

  Alt 16. Feb 2014, 15:31
Hallo DPler.
Da ich mit meinem Programm sehr viele Dokumente abspeichere und danach natürlich auch wieder anzeigen lassen möchte, habe ich mir überlegt, einen Preview Handler in meinem Projekt mit einzubinden. Ich möchte also Word, Excel, PDF, ... Dateien in meinem Programm per Vorschau anzeigen.

Den Quellcode, wie das denn funktionieren sollte, habe ich von hier. Diese Unit funktioniert auch und macht auch das was es soll.

Ich habe mir zum Testen das Beispielprojekt von dieser Seite heruntergeladen und ausprobiert. Da ich bei meinem neuesten Projekt aber peinlichst darauf achte, dass ich keine Memory Leaks erzeuge, habe ich auch hier nachgeschaut, ob alles sauber wieder freigegeben wird und keine Leaks entstehen.

Also habe ich die Zeile ReportMemoryLeaksOnShutdown := True; in das Beispiel Projekt eingebunden, eine Vorschau geladen und das Programm wieder geschlossen. Ich dachte schon "na super - alles funktioniert wie es soll also kann ich es bedenkenlos benutzen". 10 Sekunden nach der Beendigung des Programms kam dann allerdings die Meldung, dass doch ein MemoryLeak erkannt wurde und das Programm sogar nicht mehr funktionieren würde. (Im TaskManager wird der Prozess auch nach der Beendigung des Programmes angezeigt. Auch wenn ich die Zeile ReportMemoryLeaksOnShutdown := True; weglasse.)

In der Meldung steht, dass eine Instanz des TStreamAdapter nicht freigegeben wurde.

Nun meine Frage: Wie bekomme ich diesen "Fehler" weg bzw. wie lässt sich das umgehen? Ich bin für jede Hilfe dankbar die ich hier bekomme.

Im Anhang noch die Fehlermeldung.
Miniaturansicht angehängter Grafiken
memoryleak.png  

Geändert von Aviator (16. Feb 2014 um 18:50 Uhr) Grund: Thema als erledigt markiert
  Mit Zitat antworten Zitat