![]() |
Inhalt des aktuellen Tabsheet drucken?
Hallo,
ich habe hier einige sehr nützliche Beispiele für ein Webbrowser gefunden, die auf Tabsheets basieren. Also es wird für jedes Tabsheet eine neue Instanz von TWebbrowser angelegt. Nun meine Frage. Wie kann man den Inhalt des aktuellen Tabsheets (Webbrowser-Instanz) drucken? Danke |
Re: Inhalt des aktuellen Tabsheet drucken?
|
Re: Inhalt des aktuellen Tabsheet drucken?
Tolles Teil! Ich meinte aber damit, das für jeden Seitenaufruf ein neues Tabsheet angelegt wird und darauf eine neue Instanz von TWebbrowser. Also dynamisch zur Laufzeit.
Beispiel:
Delphi-Quellcode:
Du hast ja auf Deinen Tabsheet bereits die TWebbrowser-Kompo liegen.
procedure TBrowser.NeuesFenster(Sender: TObject;var ppDisp: IDispatch; var Cancel: WordBool);
var Tabsheet: TTabsheet; Browser: TWebBrowser; begin TabSheet:= PageControl1.ActivePage; ppDisp:= (PageControl1.ActivePage.Controls[0] as TWebBrowser).DefaultInterface; end; |
Re: Inhalt des aktuellen Tabsheet drucken?
Anfangs hat es nur einen TWebbrowser. Wenn OnNewWindow2 ausgelöst wird,
erzeuge ich auch dynamisch ein neues TTabSheet mit einem Webbrowser drauf:
Delphi-Quellcode:
procedure TfrmMyBrowser.WebBrowser1NewWindow2(Sender: TObject;
var ppDisp: IDispatch; var Cancel: WordBool); var NewWindow: TfrmMyBrowser; ts: TTabSheet; begin // if the Webbrowser Dokument is not completely loaded, it might be a popup if (Sender as TWebbrowser).ReadyState <> READYSTATE_COMPLETE then begin ppDisp := nil; Cancel := True; end else begin ts := CreateTabBrowser('', 'New Browser'); // <---- WB wird hier dynamisch erzeugt WaitForBrowser(TWebbrowser(ts.Controls[0])); ppdisp := (TWebbrowser(ts.Controls[0])).Application; WaitForBrowser(TWebbrowser(ts.Controls[0])); end; end; |
Re: Inhalt des aktuellen Tabsheet drucken?
Und wie druckst Du nun das aktive TabSheet aus???
|
Re: Inhalt des aktuellen Tabsheet drucken?
Zitat:
oder so:
Delphi-Quellcode:
var
vaIn, vaOut: OleVariant; begin WebBrowser1.ControlInterface.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER, vaIn, vaOut); |
Re: Inhalt des aktuellen Tabsheet drucken?
Also wenn ich Dein Browser jetzt richtig intepretiere, hat das Tabsheet eine TWebbrowser-Kompo. Mit der Eingabe einer neuen URL, wird ein neues Tabsheet angelegt mit einer Instanz der ersten Browser-Kompo. Oder liege ich falsch?
Ehrlich gesagt, jetzt habe ich überhaupt keinen Plan mehr!!! |
Re: Inhalt des aktuellen Tabsheet drucken?
Zitat:
z.B bei Klick auf die rechte Maustaste und "In neuem Fenster öffnen". Dann wird ein neues TabSheet angelegt und eine TWebbrowser Instanz dynamisch erzeugt. Der TWebbrowser Instanz wird dann die URL des Links übergeben. |
Re: Inhalt des aktuellen Tabsheet drucken?
Ich gebe es auf!!!
Oder vielleicht nochmals anders gefragt. So gehe ich wieder zur vorherigen Webseite:
Delphi-Quellcode:
Könnte man das nicht auch mit dem Drucken so realisieren?
(PageControl1.ActivePage.Controls[0] as TWebBrowser).GoBack;
|
Re: Inhalt des aktuellen Tabsheet drucken?
Also in meinem Demo wird all das gezeigt...
aber so sollte es auch funktionieren:
Delphi-Quellcode:
var
vaIn, vaOut: OleVariant; begin (PageControl1.ActivePage.Controls[0] as TWebBrowser).ControlInterface.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER, vaIn, vaOut); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:25 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz