Einzelnen Beitrag anzeigen

wwwdirk

Registriert seit: 28. Aug 2007
Ort: Aachen
9 Beiträge
 
#12

AW: PDF-Dokument aus Blob-Feld in einem Programfenster anzeigen?

  Alt 7. Jul 2011, 11:33
Ich bau mir für solche Zwecke immer ein Formular mit der TWebBrowser-Komponente, dass ich modal anzeige. Sobald das Formular geschlossen wird, lösche ich die temporäre Datei wieder. Der Parameter aUrl im Konstruktor enthält Dateinamen inkl. Pfadangabe der temporären PDF-Datei.

Die Formular-Implementation sieht dann so aus:
Delphi-Quellcode:
type
  TfrmBrowser = class(TForm)
    webBrowser: TWebBrowser;
    procedure FormShow(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private-Deklarationen }
    FUrl : string;
  public
    { Public-Deklarationen }
    constructor Create (aOwner: TComponent; const aUrl: string);
  end;

var
  frmBrowser: TfrmBrowser;

implementation

{$R *.dfm}

{ TfrmBrowser }

constructor TfrmBrowser.Create(aOwner: TComponent; const aUrl: string);
begin
  inherited Create (aOwner);
  FUrl := aUrl;
end;

procedure TfrmBrowser.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  // Hier wird der Browser vom PDF-Dokument getrennt!!! Ansonsten kann die
  // Webbrowser-Komponente ggf. hängen.
  Hide;
  webBrowser.Navigate('about:blank');
  while webBrowser.Busy do
    Application.ProcessMessages;
end;

procedure TfrmBrowser.FormShow(Sender: TObject);
begin
  webBrowser.Navigate (FUrl);
end;
  Mit Zitat antworten Zitat