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.
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:
|
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.
|
Takto předáme nové instanci exploreru adresu, která je v ComboBoxu nazvaném AddressCB. A takto parametr převezmeme.
|
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.
|
Náš explorer bude umět táké stránku vytisknout.
|
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:
|
Pak jěště můžeme nastavit filtr pro soubory HTM a HTML.
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ý!!!
-
25. listopadu 2012
-
30. srpna 2002
-
10. října 2002
-
4. listopadu 2002
-
12. září 2002
-
25. listopadu 2012
-
28. července 1998
-
31. července 1998
-
28. srpna 1998
-
6. prosince 2000
-
27. prosince 2007
-
4. května 2007