Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Acrobat ActivX Komponente - Fehler beim Schließen (https://www.delphipraxis.net/213116-acrobat-activx-komponente-fehler-beim-schliessen.html)

Metschu 29. Mai 2023 13:33

Acrobat ActivX Komponente - Fehler beim Schließen
 
Hallo zusammen,

ich habe ein Problem mit der "acropdflib_tlB" aus Delphi (Acrobat ActivX Komponente):

Wenn ich das Programm Schließe bekomme ich eine Fehlermeldung ("Exception der Klasse $C0000005")

Wird die PDF über "PDF.LoadFile" geladen, bekomme ich die Meldung nach dem Schließen der Software, oder wenn mit Free oder Destroy oder änhlichem versucht wird, diese frei zu geben.

Lade ich über "pdf.src(Filename)", wird die Anwendung ohne Fehlermeldung geschlossen.
Wird aber dann nach dem laden in der PDF geblättert oder Scrollbars aus/eingeblendet, erscheint die Fehlermeldung wieder mit dem Schließen der Anwendung.

Hatte jemand schon so ein Fehler?

Danke und Gruß

Torsten

Bernhard Geyer 29. Mai 2023 13:57

AW: Acrobat ActivX Komponente - Fehler beim Schließen
 
Die ActiveX-Schnittstelle des Adobe (Readers) ist nur für die Nutzung im IE ausgelegt.
Mussten selbst schon vor Jahren das auf "IE (TWebbrowser) lädt PDF" umbauen, damit es weiter funktionierte.

In 2023 würde ich gar nix mehr mit Adobe Acrobat-Software machen, sondern das PDF direkt im TEdgeBrowser (Wrapper im Edge Embedded WebView2-Control) laden.

hotrs02 30. Mai 2023 09:36

AW: Acrobat ActivX Komponente - Fehler beim Schließen
 
Bzgl. des von dir geschilderten Verhaltens gibt es auf stackoverflow einen Faden:

https://stackoverflow.com/questions/...-on-form-close

Die am Ende aufgezeigte Lösung mit der Zuweisung von NIL im Destruktor (die wir in Delphi 5 erfolgreich verwendet haben) führt bei uns in Delphi 11 Anwendungen unter gewissen Umständen weiterhin zu Problemen. Die andere Lösung (Aufruf von _AddRef) zeigte bei uns zwar keine Auffälligkeiten, führt aber natürlich zu einem Speicherleck.

Letztendlich haben wir uns gerade gegen die Verwendung des Adobe Acrobat (Reader) ActiveX Steuerelements entschieden und setzen stattdessen auf WebView4Delphi, einer moderneren Implementierung von WebView2 für Delphi.

Das ActiveX Steuerelement des Adobe Acrobat (Reader) ist neben dem ActiveX Steuerelement des Windows Media Player das zweite Steuerelement, welches wir nach dem Umstieg von Delphi 5 auf das aktuelle Delphi 11 (und Neuerzeugen der entsprechenden Units) nicht mehr verwenden können. Letzteres hatte massive Probleme mit der Darstellung, wenn es verschachtelt eingebettet wurde. In Delphi 5 Anwendungen funktionieren beide Steuerelemente mit ansonsten identischen Code und auf den gleichen Systemen problemlos.

Metschu 30. Mai 2023 20:31

AW: Acrobat ActivX Komponente - Fehler beim Schließen
 
Vielen Dank für den Tipp.

Die Beschreibung des Fehlers deckt sich genau mit meinem.

Ein Aufruf von _AddRef erzeugt erstmal keine Fehlermeldung mehr, für einen Übergang reicht dies.

Im nächsten Schritt werde ich dann auch auf WebView4Delphi umsteigen.

Gruß

Torsten


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:09 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