Entwickler-Ecke
Sonstiges (Delphi) - Öffnen PDF / ActiveX manchmal "read" Fehler beim beenden
Biarchiv - Mi 03.11.10 16:03
Titel: Öffnen PDF / ActiveX manchmal "read" Fehler beim beenden
Hallo,
ich öffne mit der PDF ActiveX ganz normal PDF Dateien. Diese werden auch wunderbar angezeigt und alles läuft super.
Nur manchaml beim Beenden des Programms bekomme ich etwa 1 - 2 Sekunden nachdem mein Program schon geschlossen ist den Fehler: Die Anweisung in "0x700609c" verweist auf Speicher in "0x00000014". Der vorgang "read" konnte nicht auf dem Speicher durchgeführt werden.
Mein Code:
OnCreate:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure TForm1.FormCreate(Sender: TObject); begin AcroPDF1 := TAcroPDF.Create(SELF); AcroPDF1.Parent := self; AcroPDF1.Visible := true; AcroPDF1.Height := 1; AcroPDF1.Width := 1; AcroPDF1.Top := Form1.Height - 30; AcroPDF1.Left := Form1.Width - 30; AcroPDF1.Hide; end; |
OnClick - Button:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| AcroPDF1.Visible := True; AcroPDF1.Align := alClient; ScrollBox1.Hide; RichEdit1.Hide; AcroPDF1.LoadFile(GetTempDir + '\' + 'mypdf'); AcroPDF1.setShowToolbar(False); DeleteFile(GetTempDir + '\' + 'mypdf'); ScrollBox1.Hide; AcroPDF1.Show; AcroPDF1.SetFocus; |
Kann mir da wer helfen?
jaenicke - Do 04.11.10 06:55
Gib am besten das Objekt selber frei statt das dem übergebenen Owner (hier Self) zu überlassen. Übergib da einfach einmal nil und gib das Objekt selbst frei.
Entweder kommt dann auch der Fehler direkt (dann läuft da etwas im Speicher schief) oder dann funktioniert alles.
Wenn es dann auch verzögert passiert, läuft da noch etwas in dem PDF-Objekt obwohl in deinem Programm schon etwas nicht mehr vorhanden ist (Events zugewiesen? ...).
Biarchiv - Do 04.11.10 18:34
Hallo,
danke für die Antwort. Geht nicht. Ich hab schon 50 verschiedene Kombinationen ausprobiert.
Egal ob mit Free oder NIL am Ende. Geht nicht. In Win7 kommt das nicht vor. Es ist auch nur jede 2. pdf davon betroffen.
Mit dem Suchwort: 0x0700609c findet man einiges im Adobe Forum aber leider kein Lösung für Delphi.
Biarchiv - Do 04.11.10 19:27
Hallo,
danke, allerdings hab ich den Link schon gefunden. Leider kann ich zuwenig C. Wie müsste ich das auf Delphi anwenden? Das Problem ist das es AcroPDF1.Dispose(); nicht gibt.
Gerd Kayser - Do 04.11.10 19:35
Biarchiv hat folgendes geschrieben : |
Wie müsste ich das auf Delphi anwenden? |
Ich hab zwar mit dem C#-Geraffel nix am Hut, aber für mich sieht das so aus:
Delphi-Quelltext
1: 2: 3:
| AcroPDF1.Free; Application.ProcessMessages; CoFreeUnusedLibraries; |
Das Ganze vielleicht im Close-Ereignis des Formulars.
Biarchiv - Do 04.11.10 20:19
Danke Gerd Kayser !!!
Geht super ;)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!