Folosind componenta twebbrowser, apăsați computerul

Operațiuni de bază

Pentru a utiliza TWebBrowser în programul dvs., trebuie să plasați componenta corespunzătoare pe fila Internet a formularului. Apoi, pentru a afișa o pagină HTML în aceasta, trebuie să apelați metoda de Navigare:







Să examinăm mai îndeaproape parametrii transmiși la metoda Navigate.

Parametrii rămași nu sunt obligatorii și servesc la transferul de informații suplimentare (tabelul 1).

Cel mai interesant este parametrul PostData, care vă permite să trimiteți serverului Web datele primite ca urmare a completării formularului, dacă acest server necesită o tranzacție HTTP POST. Deci, următorul fragment de cod trimite serverului numele de utilizator și parola, completate sub forma lui Delphi:

De exemplu, pe un server Web, această solicitare poate fi procesată de următorul script ASP:

După primirea datelor, este necesar să le oferim utilizatorului posibilitatea de a colabora cu aceștia. Multe funcții TWebBrowser sunt accesibile prin metoda ExecWB, care oferă o modalitate ușoară de a accesa interfața IOleCommandTarget. Această metodă are următoarea formă:

CmdID poate fi una dintre constantele OLECMDID definite în fișierul ShDocVw.pas.

Parametrul cmdexecopt poate lua una din cele patru valori prezentate în Tabelul. 2.

Parametrii pvaIn și pvaOut sunt opțional și depind de comanda specifică.

Este posibil să solicitați de la TWebBrowser disponibilitatea unei comenzi utilizând funcția:

Funcția returnează o mască biți din valorile date în Tabel. 3.

Prin urmare, puteți configura interfața în funcție de caracteristicile suportate de versiunea curentă a TWebBrowser:

Pentru a imprima conținutul TWebBrowser, utilizați comanda OLECMDID_PRINT. Metoda de imprimare poate să vadă, în special, după cum urmează:

Încercați ... cu excepția ... blocului de sfârșit este necesar pentru motivul că TWebBrowser generează o excepție EOleException cu codul atunci când execută orice comandă cu ExecWB:

Începând cu Internet Explorer 5, sunt acceptate comenzi suplimentare care sunt acceptate prin interfața IOleCommandTarget. Acestea extind semnificativ capacitățile de gestionare a componentei, dar nu sunt disponibile sau nu sunt documentate în versiunea 4. Aceasta creează anumite dificultăți în programare. Deci, pentru a organiza o căutare în interiorul unei pagini descărcate, aveți nevoie de următorul cod:

Folosirea unui apel nedocumentat în acest caz este justificată, deoarece în versiunea 4 acest apel nu se va mai modifica, iar în versiunea 5 vom detecta și vom folosi metoda documentată. În același timp, IE4 este încă destul de obișnuit, așadar ar fi inadecvat să privați complet programul de posibilitatea de a căuta astfel de computere.

Tweaking

Dacă doriți să ajustați componenta, trebuie să implementați interfața IDocHostUIHandler, care permite programatorului să preia controlul comportamentului TWebBrowser.

Interfața este declarată ca:

Moștenitorul TWebBrowser, care implementează această interfață, ar trebui declarat astfel:

Pe CD-ROM-ul nostru este codul pentru această componentă. care implementează funcționalitatea minimă. Puteți să o utilizați ca bază pentru crearea moștenitorilor TWebBrowser extinși.

Și acum, să aruncăm o privire asupra celor mai interesante metode ale interfeței IDocHostUIHandler din punctul de vedere al programatorului.

Să începem cu metoda ShowContextMenu:

Această funcție este apelată atunci când TWebBrowser ar trebui să afișeze un meniu contextual. Dacă afișați propriul meniu sau doriți să suprimați meniul, atunci funcția ar trebui să returneze S_OK și dacă meniul ar trebui să afișeze TWebBrowser - apoi S_FALSE.

Următorii parametri sunt transmiși funcției:

1. DwID este identificatorul de meniu care poate lua una dintre următoarele valori:

În funcție de valoarea identificatorului, puteți afișa un meniu potrivit.

2. ppt - coordonatele în care trebuie afișat meniul.

3. pcmdtReserved - interfață IOleCommandTarget, permițând interogarea stării comenzilor și executarea lor.

4. pdispReserved - Interfața IDispatch a obiectului pentru care este apelat meniul.







Cea mai simplă implementare a acestei metode ar putea arăta astfel:

Pentru a dezactiva complet meniul contextual, metoda trebuie să întoarcă întotdeauna S_OK.

Următoarea metodă, pe care o vom lua în considerare - GetHostInfo:

O aplicație poate popula o structură pInfo definită ca:

Aici dwFlags este masca de biți din următoarele steaguri, prezentată în Tabel. 4. și dwDoubleClick setează răspunsul făcând dublu clic pe mouse și poate lua una dintre valorile indicate în Tabel. 5.

Metoda trebuie să returneze un cod de eroare S_OK sau OLE.

De exemplu, pentru a crea o fereastră cu bare de defilare plate și fără un cadru tridimensional, trebuie să implementați această metodă după cum urmează:

vă permite să interceptați executarea comenzilor și procesarea cheilor "fierbinți" și să o înlocuiți cu propria dvs.

vă permite să specificați calea din registru pe care TWebBrowser o va utiliza pentru a stoca setările. Acest lucru face posibilă, în special, ca componenta utilizată în program să fie independentă de setările curente ale Internet Explorer.

Calea trebuie să fie conținută în cheia de registry HKEY_CURRENT_USER.

O implementare tipică a acestei metode ar putea arăta astfel:

Există o serie de setări care, în ciuda disponibilității manipulatorului GetOptionKeyPath, sunt oricum luate din opțiunile standard Internet Explorer. Cele mai importante dintre acestea sunt anteturile utilizate pentru imprimare. În versiunile de Internet Explorer până la 5.5 inclusiv, singura modalitate de a modifica (sau a suprima) anteturile și subsolurile este de a scrie noi valori în cheia de registry:

înainte de a le imprima și a le restaura după imprimare.

Și acum să vorbim despre metodă

Acesta vă permite să întoarceți un pointer la interfața IDispatch implementată în aplicația dvs., care va fi disponibilă pentru scripturile din TWebBrowser. Dacă nu implementați această interfață, parametrul ppDispatch trebuie să fie setat la NIL. Metoda returnează succesul S_OK sau codul de eroare OLE în cazul unei erori.

Metodele acestei interfețe sunt disponibile din scripturile care se execută în TWebBrowser după cum urmează:

Puteți implementa IDispatch, de exemplu, utilizând clasa TAutoObject.

Metoda TraducereURL vă permite să modificați adresa URL prin care este încărcată pagina.

pchURLIn indică șirul care conține adresa URL sursă. Dacă aplicația dvs. difuzează, atunci ar trebui să aloce memoria pentru noua valoare utilizând funcția CoTaskMemAlloc, să umple tamponul cu noua valoare URL și să returneze S_OK.

În caz contrar, trebuie să setați ppchURLOut la NIL și să reveniți la S_FALSE. Dacă apare o eroare, metoda trebuie să returneze un cod de eroare OLE.

Handlerul este chemat numai atunci când o legătură interactivă este trecută de la TWebBrowser și nu este apelată atunci când navigați utilizând metoda Navigate.

Accesați modelul de document TWebBrowser

Internet Explorer implementează o extensie HTML numită Dynamic HTML (DHTML). Acest model reprezintă toate elementele documentului HTML ca o colecție de colecții de obiecte care sunt disponibile pentru modificare. Scripturile încorporate în paginile și aplicațiile care au acces la aceste colecții pot să le găsească și să își modifice elementele, precum și să adauge altele noi, iar modificările vor fi reflectate imediat în fereastra TWebBrowser. O reprezentare ierarhică a obiectelor HTML este denumită DOM (Document Object Model).

Programatorul DOM din controlul IE ActiveX este disponibil ca set de interfețe COM. Punctul de pornire pentru accesarea acestuia este proprietatea:

Această proprietate oferă acces la interfața IHtmlDocument2, permițându-vă să lucrați cu conținutul documentului. Pentru a obține o interfață, trebuie să o interogați folosind operatorul ca:

Un document din DOM este o colecție de colecții de elemente. Pentru a accesa colecția, utilizați interfața IHtmlElementCollection și IHtmlElement la elementul de colectare. Următorul exemplu afișează toate etichetele din documentul curent și textul din interiorul etichetelor:

În plus, este posibil să creați dinamic documente în memorie, fără a fi nevoie să le scrieți pe disc și să apelați metoda Navigate cu "file: //"

Să ilustrăm lucrul cu modelul de documente TWebBrowser pe un exemplu concret. Vom plasa componentele TWebBrowser, TMemo și trei TButtons pe formular și apoi vom crea următoarele manipulatoare de evenimente:

În Memo1.Lines scriem următorul text:

Așadar, am reușit să creăm dinamic documente HTML și să le oferim utilizatorilor.

Mai recent, Cougar a introdus o nouă serie de surse de alimentare pentru PC-urile tradiționale - VTX, destinate utilizatorilor cu un buget limitat. În această revizuire, va fi luat în considerare modelul Cougar VTX600, care datorită caracteristicilor sale va fi unul dintre cele mai populare în această linie de surse de alimentare

La evenimentul anual Capsaicin SIGGRAPH din Los Angeles, AMD și-a consolidat poziția pe piața de PC-uri high-end cu noii procesori Ryzen Threadripper și GPU "Vega"

Pentru o construcție simplă și convenabilă a utilizatorilor obișnuiți companie de rețea ZyXEL a lansat urmatoarea versiune a platformei sale de Internet pentru conectarea la rețelele 3G / 4G prin USB-modem cu punct de acces Wi-Fi - ZyXEL Keenetic 4G III, pe care le considerăm în această recenzie

Pentru familia sa de routere și routere, ASUS a adăugat recent două modele foarte interesante: modelul 4G-AC55U și cel mai simplu 4G-N12. Acest articol va lua în considerare modelul emblematic ASUS 4G-AC55U

Young dar ambitioasa companie KREZ la inceputul acestui an a lansat un nou, model de laptop original, KREZ Ninja (modelul TM1102B32) care rulează Windows 10. Deoarece acest computer are un ecran pivotant, acesta poate servi ca o soluție universală - poate fi folosit cu succes pentru muncă, și pentru studiu și pentru jocuri

Dacă de multe ori imprimați fotografii și sunteți deja obosit să schimbați cartușele în imprimantă, acordați atenție echipamentului MFP Epson L850. O mare varietate de consumabile, o calitate excelentă a imprimării, o gamă largă de funcționalități - acestea sunt doar câteva dintre avantajele acestui model







Articole similare

Trimiteți-le prietenilor: