Delphi - Nagyítás/kicsinyítés a böngésző kontrolban

forráskód letöltése
A TWebBrowser komponens segítségével felruházhatjuk alkalmazásainkat az internetes webhelyek elérésének képességével. Úgy használható, mintha az Internet Explorer egy példányát indítottuk volna el. A böngésző komponens objektuma számtalan property-vel rendelkezik, ezek közül egy révén módosíthatjuk a betöltött lap objektumainak méretét, vagyis kvázi zoom-olhatunk. Cikkünkben megismerhetjük ennek módját.
Az alkalmazás Form-ján elhelyeztünk egy TWebBrowser komponenst, melyben megjelenítjük a Sample mappában mellékelt Test.htm lapot. A betöltést a komponens Navigate2 nevű metódusával végezzük az alkalmazás indulásakor.
Url := ExtractFilePath(Application.ExeName)+'Sample/Test.htm';
WebBrowser1.Navigate2(Url, Flags, TargetFrameName, PostData, Headers);
A TWebBrowser komponens számtalan property-jének jórészét elérhetjük szerkesztési időben, azonban találunk olyanokat is, melyek csak futási időben kérdezhetők le. Az OleObject tulajdonságon keresztül elérhetjük a Document objektumot, melyen keresztül a betöltött HTML lap objektumához férhetünk hozzá. A jellemző property-k a következők:
  • All: a lapon található valamennyi objektum gyűjteménye elérhető a property-n keresztül.
  • bgColor: a lap háttérszíne állítható be.
  • cookie: a lap valamennyi sütijét adja vissza egy karakterláncban
  • FileSize: a lap mérete.
  • Frames: a lapon található összes Frame gyűjteménye.
  • Images: a lap képeinek gyűjteménye.
Az OleObject.Document.Body objektumon keresztül adható meg a bevezetőben említett tulajdonság. A Body elem rendelkezik egy Style property-vel, melynek zoom attribútumában adható meg az adott nagyítás.
A mellékelt példában egy TUpDown komponens Position property-jének értékét rendeljük hozzá a zoom tulajdonsághoz úgy, hogy osztjuk tízzel.
WebBrowser1.OleObject.Document.Body.Style.Zoom := UpDown1.Position/10;
Erre azért van szükség, mert a zoom értéke 0 és 10 közt lehet, beleértve a törteket is.