HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

A böngészőkomponensben kijelölt szövegrész lekérdezése


Példaprogram letöltése

3794 bájt

Amikor a böngészőnkbe töltünk egy weblapot, akkor a weblap szöveges információinak tetszőleges részét kijelölhetjük, és a vágólapra másolhatjuk. Az alkalmazásainkban felhasznált böngészőkomponens esetében is megtehetjük ugyanezt. De honnan tudhatjuk meg, hogy a felhasználó éppen melyik szövegrészt jelölte ki? Ha nem mentette a vágólapra, akkor bizony annak változását hiába figyeljük. Cikkünkben bemutatjuk, hogyan szerezhető meg ez az információ.

Az alkalmazás indulásakor betöltünk egy weblapot. Ehhez a TWebBrowser komponens Navigate2 metódusát használjuk, annak első paraméterében megadva a betöltendő URL-t.
var Url, Flags, TargetFrameName, PostData, Headers: OleVariant;
begin
  Url := 'http://www.animare.hu';
  WebBrowser1.Navigate2(Url, Flags, TargetFrameName, PostData, Headers);
end;
Amikor egy tetszőleges szövegrészt kiemelünk, akkor elegendő megnyomnunk a BEOLVAS gombot, és a kijelölt szöveg megjelenik a böngészőkomponens alatt elhelyezett TMemo komponensben.
A szöveg lekérdezéséhez a projektünkhöz kell adni a MSHTML unit-ot, melyben a szükséges osztályok és metódusok elérhetők.
A unit-ban megtalálható típusok közül az IHTMLDocument2, az IHTMLSelectionObject és az IHtmlTxtRange objektumokra van szükségünk a művelet elvégzéséhez.
A TWebBrowser komponens rendelkezik egy Document property-vel, mely visszaadja a betöltött HTML lap „document” objektumát. Ezen keresztül pedig eljuthatunk a kijelölt szöveg szintjére. Első lépésben lekérdezzük ezt az objektumot.
var
  doc: IHTMLDocument2;
  sObj: IHTMLSelectionObject;
  sRange: IHtmlTxtRange;
  sText: String;
begin
  doc := WebBrowser1.Document as IHTMLDocument2;
A következő lépés, hogy egy IHTMLSelectionObject típusú objektumba kérdezzük le a kijelölt szöveget.
  sObj := doc.selection;
Majd a kijelölt szövegrészből képzünk egy IHtmlTxtRange típusú objektumot, melynek property-jei már a szükséges információkat szolgáltatják.
  sRange := sObj.CreateRange as IHtmlTxtRange;
Amennyiben a jelölőnégyzet kijelölésével kérjük, a kijelölt szövegrész HTML-kódját is megkaphatjuk.
  if checkBox1.Checked then
    sText := sRange.htmlText
  else
    sText := sRange.text;
  memo1.Text := sText;

Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2003 évkönyv 706. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |