Saját
Web-böngésző készítése |
Saját
Web böngésző készítésbe kezdeni manapság már nem is olyan nehéz,
különösen akkor, ha szándékunkban áll használni már bizonyos előre
legyártott komponenseket. Persze, ezen esetbe is aránylag sok tapasztalattal
kell rendelkeznünk, hisz böngészőt írni azért nem gyerekjáték. A
böngészőírás világába kalauzol el ez a cikk. |
Előkészület |
Vegyük sorra, hogy milyen feladatokat kell egy
Web-böngészőnek ellátnia, és hogy ezeket hogyan fogjuk megoldani. Talán a legfontosabb, az hogy
egy böngészővel weblapokat tudjunk böngészni szerencsére ennek a
feladatnak a megoldására a Delphi egy kész lapmegjelenítőt ad nekünk
komponens formában. Most sokan azt kérdik magukban, hogy akkor mi ebben a
nagyszám? Ha egy kész megjelenítőre építünk, erre azt tudom válaszolni,
hogy általában ha majd programokat készítünk úgysem fogunk egy teljesen új
megjelenítőt készíteni. Ez a megjelenítő az Internet Explorer-re
épül. Ennyit
előjáróban a megjelenítőről, egy általános böngésző
általában tartalmaz egy levelező programot is, ezt viszont már nem
tudjuk egy másik programból importálni, de komponensünk a levél küldésre és
fogadásra van, persze külön-külön. Ezeket a komponenseket fogjuk használni
erre a célra. A levél megszerkesztéséhez, pedig a Richedit nevezetű
komponenst fogjuk használni, viszont egy kis problémát okozhat, hogy levél
nem csak sima szöveg formájában érkezhet, hanem html formában is ennek a
problémának a megoldására majd a levelező készítésekor térek ki. |
Kinézet |
Egy modern böngészőnek fontos a kinézete is
de jelen esetben a sok csicsa csak nehezítené a munkát ezért egy designos, de
nem túl csicsás programot készítünk. A könnyebb kezelhetőség érdekében
képekkel ellátott Speedbutton-okat fogunk
használni. Gondolom, aki használt már internetes böngészőt az tudja,
hogy általában egy kis animáció szokott mozogni a jobb felső sarokban,
ez a gombsorban helyezkedik el általában, ezt jelen esetben egy szöveges
panel fogja helyettesíteni, ez nem kötelező, viszont arra jó, hogy
tájékoztasson a különböző állapotokról. Az oldalak nevét először
egy sima Combobox-ba fogjuk írni, de erre a célra
később készítünk egy saját komponenst mely annyiban fog különbözni az
előbb említettől, hogy a neveket automatikusan fogja kiegészíteni,
gondolom ilyet már mindenki látott, aki használt Web-böngészőt, éppen
ezért feltétlenül kötelező darab egy ilyen programba. A program aljára
egy állapotjelző sávot is elhelyezünk, ennek szükségességén szerintem
nincs sok magyarázni való. |
Kezdés |
Az első dolog, amit felrakunk a formra az
természetesen maga a lapmegjelenítő. Állítsuk be az Align jellemzőjét alClient-re,
ezentúl az egyszerűség kedvéért az ilyen beállításokat a
következőképpen fogom írni: (Align : alClient) és
azért szedem vastaggal, hogy könnyebb legyen megkeresni a szövegben. Ezután a
gombok számára különítsünk el egy kis helyet a form tetején egy ToolBar-ral, és erre helyezzük el a gombokat, erre a célra én
a speedbutton-t ajánlom. A gombokból legalább
négyet tegyünk fel. Ezek sorrendben a következők: vissza, előre,
kezdőlap, leállítás. Mindegyiknek az OnClick
eseményéhez kössük a következőket az előbb használt sorrendben: Webbrowser1.GoBack; webbrowser1.GoForward; webbrowser1.GoHome; webbrowser1.Stop; Ezen kívül fel szokás rakni a frissítés gombot
és a kedvenceket. A frissítés gombhoz ugyanúgy az OnClick eseményhez lehet kötni a következőt: webbrowser1.Refresh; A kedvencek már nem ilyen egyszerű, ezt
később ismertetem. Ezek után feltehetjük az állapotjelző animációt
helyettesítő panelt. A panel caption-jét
állítsuk be valamilyen szövegre, amely ha a böngészőnk oldalt vált,
akkor váltson át a Keresés… szövegre
ezt a következőképpen érhetjük el: a webbrowser OnBeforeNavigate2 eseményéhez állítsuk be a szöveg átírását, majd
az OnNavigateComplete eseményhez
adjuk hozzá a szöveg visszaállítását, ezt lehet szebbíteni úgy, hogy egy timer-nek adjuk meg, hogy villogtassa a szöveget, és a timer elindítását és leállítását kössük a webbrowser fent említett eseményeihez. Ezek után helyezzünk fel
egy újabb ToolBar-t, de ezúttal egy kissebet, ebben
fogjuk elhelyezni a címsort, ahogy már fentebb említettem egyelőre erre
a célra egy combobox-ot fogunk alkalmazni mellé tegyünk
egy gombot, ami a beírt címet átadja a webbrowser-nek, tehát a gomb OnClick eseményéhez adjuk hozzá a következőt: webbrowser1.Navigate(combobox1.text); |
Továbbiak |
Most már kezd kialakulni a program, de nagyon
sok munka lesz még vele, előjáróban csak annyit, hogy még hátra van a
kedvencek, a levélküldő és egy kisebb weblap készítő rész
megalkotása is. |
Forrás |
procedure TForm1.SpeedButton1Click(Sender:
TObject); begin webbrowser1.GoBack; end; procedure TForm1.SpeedButton2Click(Sender: TObject); begin webbrowser1.GoForward; end; procedure TForm1.SpeedButton4Click(Sender: TObject); begin webbrowser1.Stop; end; procedure TForm1.SpeedButton5Click(Sender: TObject); begin webbrowser1.Refresh; end; procedure TForm1.WebBrowser1BeforeNavigate2(Sender: TObject; const pDisp:
IDispatch; var URL, Flags, TargetFrameName, PostData, Headers:
OleVariant; var Cancel: WordBool); begin panel1.caption:=’keres…’ end; procedure TForm1.WebBrowser1NavigateComplete2(Sender: TObject; const pDisp:
IDispatch; var URL: OleVariant); begin panel1.Caption:='web'; end; procedure TForm1.BitBtn1Click(Sender:
TObject); begin webbrowser1.Navigate(combobox1.text); end; |
Csubák Péter |