Delphi - Web lapok megjelenítése saját alkalmazásban

3. rész

forráskód letöltése
Az Internet Explorer saját alkalmazásban való felhasználásának mostani fejezetében azt mutatjuk be, hogy miként tudunk egy tetszőleges adatbázis egyetlen rekordjából futási időben web lapot készíteni és ezt rögtön meg is jeleníteni.

Először tehát a felhasználó kiválaszt egy tetszőleges rekordot az adatbázisból, majd ebből generálunk egy HTM állományt, melyben az adott rekord mezőit beleírjuk és tetszés szerint formázzuk. Ha ez elkészült, akkor a programunkba épített böngésző segítségével rögtön meg is jelenítjük az így elkészült web lapot, mely akár Java-t, GIF-et, JPG-t, ActiveX-et, script-et is tartalmazhat tetszés szerint. Az Internet Explorer saját alkalmazásban való felhasználásának mostani fejezetében azt mutatjuk be, hogy miként tudunk egy tetszőleges adatbázis egyetlen rekordjából futási időben web lapot készíteni és ezt rögtön meg is jeleníteni.

Először tehát a felhasználó kiválaszt egy tetszőleges rekordot az adatbázisból, majd ebből generálunk egy HTM állományt, melyben az adott rekord mezőit beleírjuk és tetszés szerint formázzuk. Ha ez elkészült, akkor a programunkba épített böngésző segítségével rögtön meg is jelenítjük az így elkészült web lapot, mely akár Java-t, GIF-et, JPG-t, ActiveX-et, script-et is tartalmazhat tetszés szerint.


Fontos, hogy először importáljuk a Microsoft Internet Controls ActiveX-et, mert addig a példaprogramot sem fogjuk tudni megnyitni. Ennek a leírása az első évfolyam 20. számában megtalálható.

A Delphi 3.0 verziójában már helyet kapott egy TPageProducer nevű komponens az Internet palettán. Ezt felhasználva futási időben állíthatunk elő web lapokat olyan módszerrel, hogy elkészítjük a web lap keretét és ott ahol dinamikus adatokra van szükség, ott egy hivatkozást helyezünk csak el. Részletesebb bemutatása ennek a komponensnek megtalálható a TPageProducer komponens című cikkben.

Mellékelt példában ilyen hivatkozásokra van szükség az Index.htm állományban, mely az alapját képezi a készítendő web lapnak.

Egy-egy ilyen hivatkozás úgy néz ki, hogy <#azonosító>, ahol az azonosító szó helyére egy egyedi azonosítót kell megadnunk. A későbbi feldolgozás során ezeket az azonosítókat kell majd lecserélnünk a megfelelő tartalomra.

A TPageProducer komponensnél a HTMLFile property-nél adhatjuk meg azt az állományt teljes elérési útvonallal, amelyet a feldolgozás során át kell nézni és az azonosítókat le kell cserélni.

A programban azt a megoldást választottuk, hogy amikor a felhasználó kiválasztja a Web lap létrehozása című gombot, akkor egy TStringList típusú változóba generáljuk le a web lapot, majd innen kiírjuk egy TMP.HTM állományba. Végső lépésként ezt az állományt fogja a web böngésző komponensünk megjeleníteni.

A feldolgozás úgy történik, hogy először a TPageProducer komponensnek megadjuk a forrás HTM állományt. Ezek után meghívjuk a Content függvényét. Ez elvégzi a feldolgozást és visszatérési értékként egy olyan sztringet ad, amely tartalmazza az egész elkészült HTM állományt. Ezek után már csak ki kell írni mindezt a TMP.HTM-be.

Mikor meghívjuk a Content függvényt, az annyiszor létre fogja hozni a TPageProducer komponens OnHTMLTag eseményét, ahány azonosítót talál a forrás HTM-ben.

Itt kell megadnunk, hogy egy adott azonosító esetén milyen szöveget szeretnénk a végső web lapon viszontlátni. Azt, hogy melyik az aktuális azonosító amelyet a komponens megtalált a forrás web lapban, azt a TagString paraméterből tudhatjuk meg. Ezt vizsgálva el tudjuk dönteni, hogy milyen értékre van szükségünk.

A mellékelt példában egy apró trükköt felhasználva elértük, hogy nem kell vizsgálatot végeznünk. A trükk annyiból áll, hogy a forrás web lapon olyan azonosítókat adtunk meg, amelyeknek neve megegyezik az adatbázis mezőinek a nevével. Ezt kihasználva egyetlen sorban meg tudtuk fogalmazni azt ennél az eseménynél, hogy amilyen azonosító érkezik, annak a mezőnek az értékét adjuk vissza az adatbázisból.

Azt, hogy milyen szövegre kell lecserélni a forrás web lapon lévő azonosítót azt a ReplaceString paraméterben kell megadnunk.


Ha elkészült a web lap és lementettük, akkor a már ismert módszerrel meg tudjuk jeleníteni a képernyőn a TWebBrowser komponens segítségével.

Web lapok megjelenítése saját alkalmazásban cikksorozat