Kvrsoft - folosind funcționalitatea ie sau note despre webbrowser

Unde se caută informații?

Câteva cuvinte despre implementarea unui browser web simplu și nu numai.

Deci, o mică deviere lirică spre COM

Și din nou, despre WebBrowser







Destul de des, un programator modern trebuie să rezolve întrebări legate de afișarea sau prelucrarea informațiilor prezentate sub formă de resurse html. De exemplu, pe un anumit site, citatele zilnice sunt cotate și trebuie să colectați și să procesați statistici pentru o anumită perioadă de timp. Sau este necesar să se creeze un paznic care "privește" o listă de prețuri online a unui concurent și care trebuie să "avertizeze" asupra modificărilor prețului anumitor poziții. Sau trebuie să scrieți un "păianjen", care ar trebui să treacă printr-un anumit site în căutarea unui anumit text, iar în timpul executării trebuie să completeze mai multe formulare de înregistrare și fragmentele textului pe care le-a găsit - pentru a evidenția o anumită culoare. Puteți numi infinit multe astfel de exemple, dar esența lor se reduce la un singur lucru: obținerea unei pagini web, extragerea unei anumite părți a codului HTML de acesta prin software (parsare) și, eventual, influența software-ului asupra acestei părți a codului.

Puteți, desigur, să utilizați WinInet.dll, să accesați resursele web necesare și apoi să utilizați numeroasele funcții de șir pentru a obține partea de interes care ne interesează. Această tehnologie funcționează bine, însă este destul de laborioasă și, în cele mai multe cazuri, este departe de eleganță. O altă modalitate este să utilizați funcționalitatea Microsoft Internet Explorer.

Unde locuieste WebBrowser in Delphi?

Pentru orice control ActivX înregistrat în paletă, atunci când importați, Delphi creează o clasă de împachetare care moștenește din TOleControl. Pentru inceput, nu vom incerca caracteristicile TOleControl si derivatele cochililor - pentru acest caz, la inceput nu se poate explica cum sa confunde situatia. Rețineți că shell-ul însuși și ActiveX au mai multe lucruri diferite. De fapt, TOleControl și derivate din ea shell nu este altceva decât un instrument care oferă posibilitatea de a lucra cu ActiveX, la fel ca și componentele "native" VCL. Pentru WebBrowser din IE, o astfel de shell este TWebBrowser. Dacă utilizați Delphi5, componenta corespunzătoare poate fi găsită în fila "Internet" a paletei componente. Dacă lucrați cu Delphi4, atunci trebuie să importați controlul ActiveX corespunzător. Pentru a face acest lucru, utilizați meniul "Import ActiveX Control" și selectați "Microsoft Internet Controls" din lista ActiveX (desigur, trebuie să aveți IE instalat). Componenta implicită de împachetare este setată la z







ActiveX andocare paleta de componente. Dacă aveți nevoie nu numai de o componentă pentru afișarea paginilor web și tot veți parsa paginile descărcate, atunci ar trebui să importați și mshtml.dll. Acest lucru se poate face folosind meniul de tip Import bibliotecă selectând Microsoft Library Object HTML din listă.

Chiar dacă utilizați Delphi5, în anumite cazuri este logic să excludeți componenta pre-instalată TWebBrowser și să importați componentele corespunzătoare. Acest lucru poate fi necesar în cazul în care doriți să scrieți o aplicație compatibilă cu IE4, iar în Delphi5, modulele mshtml.pas și shdocvw.pas sunt proiectate să utilizeze IE5. Și ca rezultat, o mulțime de interfețe care sunt declarate în modulele corespunzătoare nu vor fi suportate de IE4 (de exemplu, același IHTMLDocument3). Sau invers, s-ar putea să fiți interesat de unele particularități ale noii versiuni a IE, declarația căruia este absentă în mshtml.pas (sau shdocvw.pas) de la livrarea Delphi.

Dacă decideți să efectueze independent Mshtml.dll Delphi5 de import prin Tipul de import Biblioteca - debifează «Generare Componenta Wrapper» - în caz contrar Delphi a crea interfețe inutile înveliș Klas și umfla fișierul rezultat (mshtml_tbl.pas) la dimensiunea prestațiilor medicale nelegiuite .

Este clar că dacă ați efectuat un import, atunci în Delphi5 în loc de

utilizează mshtml, shdocvw;

utilizează mshtml_tbl, shdocvw_tbl;

Dacă faceți un import, atunci probabil că acordați atenție faptului că pe lângă TWebBrowser-ul menționat, TWebBrowser_V1 va fi următorul. Ce este această fiară? Răspunsul este destul de simplu - este compatibil cu controlul IE3. În IE4, a fost introdus pentru compatibilitate cu acele aplicații care au fost dezvoltate în termenii IE3.

Și se termină cu tema de export - sunt folosite adesea nume din biblioteca de tip din IE, care sunt rezervate pentru Delphi. În cele mai multe cazuri, Delphi se confruntă cu această sarcină (de exemplu, redenumirea metodei de tip a unei anumite interfețe în type_). Dar pentru mshtml.dll din IE5 există un moment neplăcut - există o constantă

Și dacă importați în Delphi4, atunci nu există nicio redenumire. B ca o consecință într-un fel de loc inofensiv, cum ar fi următoarele

funcția IsOk: boolean;







Trimiteți-le prietenilor: