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...