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 Größe von Form1 an Ausmaße von TWebbrowser anpassen (https://www.delphipraxis.net/132065-groesse-von-form1-ausmasse-von-twebbrowser-anpassen.html)

Cyberstorm 5. Apr 2009 16:21


Größe von Form1 an Ausmaße von TWebbrowser anpassen
 
Hallo.

Ich lade zufällige Bilder aus dem Internet in einen TWebbrowser (jpeg, animierte gifs, pngs etc.).
Nun würde ich gerne erreichen, dass das Formular immer nur so groß ist, wie die aktuell angezeigte Seite/Bild im Webbrowser --> das keine Scrollbars da sind und das Formular auch nicht größer ist als notwendig.

Habe leider nichts dazu gefunden im Netz.

Jemand eine Idee?

Danke

Pfoto 5. Apr 2009 20:05

Re: Größe von Form1 an Ausmaße von TWebbrowser anpassen
 
Hallo Cyberstorm,

ich habe mal folgende Methode umgeschrieben, da ich etwas ähnliches
verwende. Es wird rekursiv solange gesucht, bis das erste Bild auftaucht.
Du kannst Document.Root übergeben, um die gesamte Website abzusuchen.

Falls deine Bilder eine ID haben, kannst du natürlich auch per GetElementByID()
danach suchen.

Delphi-Quellcode:
  procedure ReadFirstImg(aIHTMLElement: IHTMLElement;
    var aSrc: string; var aWidth: integer);
  var
    ec: IHTMLElementCollection;
    ie: IHTMLImgElement;
    v: OleVariant;
    i: integer;

  begin
    If not assigned(aIHTMLElement) then exit;
    ec := aIHTMLElement.children as IHTMLElementCollection;
    for i:= 0 to ec.length-1 do
    begin
      v := 0;
      If (Succeeded((ec.item(v, i) as IHTMLElement).QueryInterface(IHTMLImgElement, ie))) then
      begin
        aWidth:= ie.width;
        aSrc:= ie.src;
        break;
      end else
        ReadFirstImg(ec.item(v, i) as IHTMLElement, aSrc, aWidth);
    end;
  end;
Edit:
Achso: Mit der ermittelten Breite kannst du dann ja recht einfach
die Breite der Form anpassen.

Gruß
Jürgen

Cyberstorm 5. Apr 2009 22:46

Re: Größe von Form1 an Ausmaße von TWebbrowser anpassen
 
Super, danke!

Hat mich auf die recht simple Lösung für mein Problem gebracht:

Delphi-Quellcode:
procedure TFrmMain.IEDocumentComplete(ASender: TObject; const pDisp: IDispatch; var URL: OleVariant);
begin
  Width:=IE.OleObject.Document.Images.Item(0).Width;
  Height:=IE.OleObject.Document.Images.Item(0).Height;
end;


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