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