Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Inhalt des aktuellen Tabsheet drucken? (https://www.delphipraxis.net/42382-inhalt-des-aktuellen-tabsheet-drucken.html)

mlspider 18. Mär 2005 07:30


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

toms 18. Mär 2005 08:41

Re: Inhalt des aktuellen Tabsheet drucken?
 
Hi,

Schau dir mal die neuste Version vom Hier im Forum suchenMini Webbrowser Demo an.

mlspider 18. Mär 2005 08:46

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:
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;
Du hast ja auf Deinen Tabsheet bereits die TWebbrowser-Kompo liegen.

toms 18. Mär 2005 10:55

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;

mlspider 18. Mär 2005 11:01

Re: Inhalt des aktuellen Tabsheet drucken?
 
Und wie druckst Du nun das aktive TabSheet aus???

toms 18. Mär 2005 11:03

Re: Inhalt des aktuellen Tabsheet drucken?
 
Zitat:

Zitat von mlspider
Und wie druckst Du nun das aktive TabSheet aus???

Übers Menü File | Print...

oder so:

Delphi-Quellcode:
var
  vaIn, vaOut: OleVariant;
begin
  WebBrowser1.ControlInterface.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER,
    vaIn, vaOut);

mlspider 18. Mär 2005 11:07

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

toms 18. Mär 2005 11:14

Re: Inhalt des aktuellen Tabsheet drucken?
 
Zitat:

Zitat von mlspider
Mit der Eingabe einer neuen URL, wird ein neues Tabsheet angelegt mit einer Instanz der ersten Browser-Kompo.

Beim Demo wird beim Navigieren zu einer neu eingegebenen URL kein neues TabSheet angelegt sondern nur
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.

mlspider 18. Mär 2005 11:19

Re: Inhalt des aktuellen Tabsheet drucken?
 
Ich gebe es auf!!!

Oder vielleicht nochmals anders gefragt.

So gehe ich wieder zur vorherigen Webseite:

Delphi-Quellcode:
(PageControl1.ActivePage.Controls[0] as TWebBrowser).GoBack;
Könnte man das nicht auch mit dem Drucken so realisieren?

toms 18. Mär 2005 12:07

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 05:57 Uhr.
Seite 1 von 2  1 2      

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