AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi WebBrowser 'Ziel freigeben'
Thema durchsuchen
Ansicht
Themen-Optionen

WebBrowser 'Ziel freigeben'

Ein Thema von Berni68 · begonnen am 30. Okt 2007 · letzter Beitrag vom 9. Jan 2008
Antwort Antwort
Berni68

Registriert seit: 9. Jan 2006
Ort: Villingen
162 Beiträge
 
Delphi XE5 Professional
 
#1

WebBrowser 'Ziel freigeben'

  Alt 30. Okt 2007, 20:32
Hallo,

ich nutze den WebBrowser um unter anderem um .pdf-Dateien anzuzeigen:
WebBrowser.Navigate('x:\fifi.pdf');
geht soweit ganz gut.
Mein Problem ist, daß dann 'x:\fifi.pdf' blockiert ist, d.h. kann weder verschoben noch umbenannt werden.

Wie kann man das blockieren verhindern?
Bin für jede Anregung dankbar!
Bernhard
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: WebBrowser 'Ziel freigeben'

  Alt 30. Okt 2007, 20:34
Liegt am Acrobat(-Plugin).
Markus Kinzler
  Mit Zitat antworten Zitat
Berni68

Registriert seit: 9. Jan 2006
Ort: Villingen
162 Beiträge
 
Delphi XE5 Professional
 
#3

Re: WebBrowser 'Ziel freigeben'

  Alt 30. Okt 2007, 20:42
wenn man statt des WebBrowsers das Acrobat-Plugin verwendet, kann man
fifi.pdf problemlos umbenennen oder verschieben. Am plugin allein liegt's also nicht.
Die Probleme mit dem Acrobat-Plugin liegen an vielen anderen Stellen: z.B. unterschiedliche
Reader-Versionen, Resize nicht pdf-Dateien ,z.B, .xls .doc etc.
Bernhard
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: WebBrowser 'Ziel freigeben'

  Alt 31. Okt 2007, 06:46
Hallo Bernhard,

solange der Acrobat Reader die Datei im Zugriff hat, kannst du sie nicht verschieben. Sobald du den WebBrowser an eine andere Stelle navigierst (about:blank genügt schon), wird das Dokument wieder freigegeben - wenn keine Komplikationen auftreten.

Grüße vom marabu
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#5

Re: WebBrowser 'Ziel freigeben'

  Alt 7. Jan 2008, 12:26
Diese Aussage kann ich leider nicht bestätigen. Folgendes mache ich derzeit und ab dem 2. Aufruf erhalte ich immer eine Exception:

Im Projekt test.exe ist eine Exception der Klasse EFCreateError aufgetreten. Meldung: 'Datei C:\Programme\Borland\Delphi6\Projects\test\ablage\ tmp\temp.pdf kann nicht erstellt werden'. Prozeß wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.


Code:
procedure TForm1.btn_pdf_previewClick(Sender: TObject);
var
    FileName:String;
begin
    pdf.Navigate('about:blank'); //webbrowser auf leere seite führen
    FileName := tmp_path + 'temp.pdf'; //festlegen des dateinamens
    OverHandContent; //internes übergeben der inhalte an pdf-controls
    pg_main.ActivePageIndex := 2; //mogelpackung
    //erstellen der pdf-datei
    PReport1.FileName := FileName;
    PReport1.BeginDoc;
    PReport1.Print(pdf_doc);
    PReport1.EndDoc;
    //akualisieren einer internen liste
    list_pdf.Clear;
    GetFilesInDirectory(pdf_path,'*.pdf',list_pdf.Items,false,false);

    pdf.Navigate(FileName); //aufruf der pdf-datei im webbrowser
    pg_main.ActivePageIndex := 3; //wechsle auf die vorschauseite...
end;
Also woran könnte es nun liegen!? Gibt der Webbrowser denn die pdf-Datei wirklich wieder frei? In meinem Taskmanager läuft jedenfalls noch eine Instanz des Readers, auch nach dem about:blank!

Achso: Ich habe zum Testen die Version 7.0.9 benutzt...Vielleicht ist es doch sinnvoller direkt die PDF mit ShellExecude anzeigen zu lassen!? Dann kann das Programm wenigstens nach dem Schliessen des Readers die Datei wieder überschreiben...
Danke
Tom
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: WebBrowser 'Ziel freigeben'

  Alt 9. Jan 2008, 13:08
Hallo Tom,

Zitat von torud:
... Gibt der Webbrowser denn die pdf-Datei wirklich wieder frei? In meinem Taskmanager läuft jedenfalls noch eine Instanz des Readers, auch nach dem about:blank! ...
die Datei wird definitiv freigegeben, die Reader-Instanz bleibt natürlich im Speicher. In deinem Code solltest du mit dem Schreibzugriff auf die "freigegebene" Datei zumindest solange warten, bis sie auch wirklich freigegeben ist: Ich würde den Zugriff vom Ereignis OnDocumentComplete() abhängig machen.

Freundliche Grüße
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: WebBrowser 'Ziel freigeben'

  Alt 9. Jan 2008, 13:36
Sonst kopier doch die Datei in ein temporäres Verzeichnis und navigiere sie dann an. Dann kann die Originaldatei immer noch geändert werden.
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:33 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