Vytvořte si vlastní internetový prohlížeč - Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:



Delphi

Vytvořte si vlastní internetový prohlížeč

22. října 2001, 00.00 | V tomto článku se dozvíte jak si s pomocí komponenty TWebBrowser vytvořit jednoduchý internetový prohlížeč.

Úvodem

    Nedávno jsem v jednom internetovém magazínu četl, že internetový prohlížeč je nejdůležitějším (nebo nejpoužívanějším) programem v počítači. Nevím jak jste na tom vy, ale na mě to sedí přesně. Tak jsem si říkal, co takhle si takový internetový prohlížeč vytvořit. Potřebná komponenta je k dispozici v Delphi, tak proč ji nevyužít. Je řeč o komponentě TWebBrowser a tu bych vám chtěl v dnešním článku stručně popsat.

Jdeme na to...

    Komponenta TWebBrowser je součástí ovládacího prvku ActiveX Microsoft Internet Controls (u mně ve verzi 1.1). Už z názvu je patrný výrobce komponenty. To, že je v Delphi komponenta, která je použita při tvorbě MSIE má jisté výhody i nevýhody. Nespornou výhodou určije je, že komponenta dokáže zobrazit vše to co MSIE tzn. že umí Javu, Flash a všechny ostatní moderní technologie. Mezi nevýhody patří velká závislost na MSIE. Např. když zavoláte proceduru GoHome, tak se komponenta přesune na stránku, kterou máte v MSIE nastavenou jako domácí.

    Céčkaři mají velkou výhodu, protože mají podporu přímo od MS. Kdybyste si přeci jenom chtěli takový MSIE vytvořit, snad vám pomůže stránka zabývající se touto problematikou (http://www.euromind.com/iedelphi).

    Proč vlastně píši tento článek, když s touto komponentou nemůžete žádný konkurenceschopný prohlížeč vytvořit? Protože pomocí této komponenty nemusíte vytvářet jen internetový prohlížeč. Komponenta TWebBrowser by se mohl hodit do více programů. Namátkou mě napadá off-line verze nekomerčního časopisu (čtenář si stáhne příspěvky odpojí se od internetu a pak si je v klidu off-line prohlídne).

    Teď už opravdu jdeme na to.

    Základní  procedury:

  • GoBack - vrátí se na předchozí stránku směrem k domovské
  • GoFoward - vrátí se na předchozí stránku směrem k poslední
  • GoHome - přejde na domovskou stránku
  • Refresh - opětovně načte stránku
  • Stop - zastavý načítání stránky
  • Navigate() - zobrazí stránku, kterou jsme mu předali jako parametr

    Existují ještě procedury Refresh2 a Navigate2, ale pro náš jednoduchý prohlížeč nám postačí procedury, které jsem vyjmenoval.

toolbar.gif (6102 bytes)

    Jako ToolBar jsem v našem exploreru použil komponenty ToolBar97, které popisuje tento článek. Obrázky na tlačítka jsem vybral z MSIE.

    Procedura Navigate() má více modifikací. Nám bohatě postačí ta nejjednodušší, jejíž formální deklarace vypadá takto:

procedure Navigate(const URL: WideString); overload;

    Každý správný explorer by měl umět otevřít nové okno s akuální stránkou. My to budeme dělat tak, že otevřeme náš explorer fcí ShellExecute() a jako parametr jí předáme aktuální internetovou adresu. Proč takhle složitě, když můžeme otevřít nové oknou třeba z kontextového menu? Protože by se otevřel MSIE a ne náš explorer.

ShellExecute(Handle, 'open', 'Project2.exe', Pchar(AddressCB.TExt), nil, SW_SHOWNORMAL);

    Takto předáme nové instanci exploreru adresu, která je v ComboBoxu nazvaném AddressCB. A takto parametr převezmeme.

AddressCB.Text:=ParamStr(1);
if not (AddressCB.TExt='') then Navigate(AddressCB.Text);   // rovnou stránku načteme

    V pravé části exploreru jste si možná všimli, že jsem tam umístil zelené kolečko. Je to komponenta Shape a slouží k indikaci stavu exploreru. Když explorer pracuje (tzn. načítá stránku), tak je jeho barva červená a když nepracuje, tak má barvu zelenou.

procedure TMainForm.WebBrowserDownloadBegin(Sender: TObject);
begin
  Shape.Brush.Color:=clRed;
end;

procedure TMainForm.WebBrowserDownloadComplete(Sender: TObject);
begin
  Shape.Brush.Color:=clGreen;
end;

    Náš explorer bude umět táké stránku vytisknout.

WebBrowser.ControlInterface.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER, vaIn, vaOut);

    Je to jednoduchý tisk, žádné nastavení kvality tisku. Pro náš příklad dostačující.

    Abychom mohli otevírat i off-line stránky, tak si na formulář umístíme komponentu OpenDialog a obshludu události tlačítka Open v hlavním menu upravíme takto:

If OpenDialog.Execute then
AddressCB.TExt:=OpenDialog.FileName;

    Pak jěště můžeme nastavit filtr pro soubory HTM a HTML.

explorer.gif (43785 bytes)

Závěr

    Tento prohlížeč je jen velmi jednoduchá ukázka funkce komponenty TWebBrowser a proto mě nekamenujte pokud vám bude nějaká funkce chybět. Dnešním článkem jsme rozhodně nevyčerpali možnosti této komponenty.


Ukázkový projekt Soubor původně obsahoval virus, tento je však 100% čistý!!!

Tématické zařazení:

 » Rubriky  » Delphi  

 » Rubriky  » Windows  

Diskuse k článku

 

Vložit nový příspěvek   Sbalit příspěvky

 

Komentář

Autor: GM78 Muž

Založeno: 11.04.2017, 18:35
Odpovědí: 0

Odkazy nefungují :-(

Odpovědět na příspěvek

 

 

Vložit nový příspěvek

Jméno:

Pohlaví:

,

E-mail:

Předmět:

Příspěvek:

 

Kontrola:

Do spodního pole opište z obrázku 5 znaků:

Kód pro ověření

 

 

 

 

Nejčtenější články
Nejlépe hodnocené články

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: