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 TWebbrowser.Height auf über 32767 setzen (https://www.delphipraxis.net/147525-twebbrowser-height-auf-ueber-32767-setzen.html)

dominikkv 10. Feb 2010 17:06


TWebbrowser.Height auf über 32767 setzen
 
Hallo,

ich habe, um einen Screenshot einer Webseite zu machen, folgenden Code (Quelle):
Delphi-Quellcode:
with WB do
  begin
    Document.QueryInterface(IHTMLDocument2, iDoc1);
    Web := ControlInterface;
    TControl(WB).Visible := Boolean(0);
    Height := OleObject.Document.Body.ScrollHeight + 20;
    Width := 1200;
    Bild  := GetBitmapFromBrowser(Web, Height, Width);
    TControl(WB).Visible := Boolean(1);
  end;
Das ganze klappt auch ganz gut bei "normalen" Webseiten. Ein Problem habe ich aber bei sehr langen Webseiten... und zwar wenn die Webseite über 32767 Pixel lang ist. WB.OleObject.Document.Body.ScrollHeight liefert zwar die korrekte Höhe, der Webbrowser an sich lässt sich aber nur bis 32767 Pixel vergrößern und der Rest wird im Bild abgeschnitten.

So wie es aussieht wird die Höhe intern als Smallint gespeichert (auch wenn .Height ein Integer ist). Hat jemand eine Idee wie ich den Webbrowser größer bekomme?


mfg.Dominik

himitsu 10. Feb 2010 17:17

Re: TWebbrowser.Height auf über 32767 setzen
 
Es kann sein, daß diese Controls eine Größenbegrenzung haben (SmallInt).


"einfache" Lösung: mach es Stückchenweise

- Foto
- Scrollen
- Foto
...
- Srollen
- Foto
- Fotos zusammensetzen

shmia 10. Feb 2010 17:29

Re: TWebbrowser.Height auf über 32767 setzen
 
Oder man geht den Weg über das Interface IHTMLElementRender.
Damit dürfte das Fenster und dessen Größe keine Rolle mehr spielen.

dominikkv 11. Feb 2010 10:25

Re: TWebbrowser.Height auf über 32767 setzen
 
Zitat:

Zitat von shmia
Oder man geht den Weg über das Interface IHTMLElementRender.
Damit dürfte das Fenster und dessen Größe keine Rolle mehr spielen.

Ok, danke, ich werde mir das mal anschauen. Ansonsten muss ich halt, wie himitsu beschrieben, scrollen und die Bilder zusammenpfrimeln :/


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