Delphi-PRAXiS

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 Druckvorschau des TWebBrowsers maximieren (https://www.delphipraxis.net/70554-druckvorschau-des-twebbrowsers-maximieren.html)

Kinimod8 31. Mai 2006 20:53


Druckvorschau des TWebBrowsers maximieren
 
Hallo,

mit folgendem Code öffne ich eine Druckvorschau des WebBrowsers:

Delphi-Quellcode:
WB1.ExecWB(OLECMDID_PRINTPREVIEW, OLECMDEXECOPT_PROMPTUSER);
Leider wird das erscheinende Fenster (zumindest auf meinem Rechner) in einer Größe von ca. 75x75 Pixeln angezeigt. Ein 'Maximieren'-Button fehlt, man muss das Fenster an dem Fensterrand 'großziehen'.

Das ist sehr umständlich. Gibt es eine Möglichkeit, die Druckvorschau gleich maximiert zu öffnen? Tritt das Problem bei Euch auch auf? Im IE wird das Fenster bei mir richtig (also groß) angezeigt.

Danke schon mal für die Hilfe,
Dominik

toms 1. Jun 2006 06:10

Re: Druckvorschau des TWebBrowsers maximieren
 
Hallo

Mir ist kein Parameter bekannt, welcher das Fenster maximiert erscheinen laesst.
Muesstest das Fenster von Hand maximieren.
D.h nach dem Fensterhandle des Druckvorschau Fensters suchen und dieses maximieren.

Habe mal einen kleinen Code dafuer geschrieben:

Delphi-Quellcode:
procedure WB_PrintPreview(Webbrowser: TWebbrowser; nCmdShow: Integer);
const
 IE_PPREVIEWCLASS = 'Internet Explorer_TridentDlgFrame'; // Druckvorschau Fenster Klassenname
var
 HWND_PP, HWND_FG: HWND;
 ClassName: array[0..255] of Char;
 t1, t2: DWORD;
begin
 Webbrowser.ExecWB(OLECMDID_PRINTPREVIEW, OLECMDEXECOPT_PROMPTUSER); // Druckvorschau aufrufen
 HWND_PP := 0;
 t1 := GetTickCount;
 repeat
  HWND_FG := GetForegroundWindow(); // Vordergrundfenster ermitteln
  GetClassName(HWND_FG, ClassName, SizeOf(ClassName));
  if lstrcmp(@ClassName[0], @IE_PPREVIEWCLASS[1]) = 0 then // überprüfen, ob Druckvorschau Fenster
    HWND_PP := HWND_FG;
  Application.ProcessMessages;
  t2 := GetTickCount;
 until (HWND_PP <> 0) or (t2 - t1 > 6000); // Falls gefunden oder Timeout erreicht
 if HWND_PP <> 0 then
   ShowWindow(HWND_PP, nCmdShow); // Druckvorschau Fenster maximieren
end;
Aufzurufen so:

Delphi-Quellcode:
 WB_PrintPreview(Webbrowser1, SW_MAXIMIZE);

Kinimod8 1. Jun 2006 14:18

Re: Druckvorschau des TWebBrowsers maximieren
 
Funktioniert wunderbar!

Dankeschön!


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:05 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