Manipularea formularelor web folosind TWebBrowser

Controlul TWebBrowser Delphi oferă acces la funcționalitatea browserului Web din aplicațiile dvs. Delphi - pentru a vă permite să creați o aplicație de navigare Web personalizată sau să adăugați funcții de navigare pe internet, fișiere și rețele, vizualizarea documentelor și posibilități de descărcare a datelor aplicațiilor dvs..

Formulare web

A formular web sau a formular pe o pagina web permite unui vizitator al paginii web să introducă date care, în cele mai multe cazuri, sunt trimise serverului pentru procesare.

Cel mai simplu formular web ar putea consta dintr-unul element de intrare (controlul editării) și a Trimite buton. Majoritatea motoarelor de căutare web (cum ar fi Google) utilizează un astfel de formular web pentru a vă permite să căutați pe internet.

Formulare web mai complexe ar include liste derulante, casete de selectare, butoane radio etc. Un formular web seamănă foarte mult cu un formular Windows standard, cu introducere de text și controale de selecție.

Fiecare formular ar include un buton - un buton de trimitere - care îi spune browserului să ia măsuri asupra formularului web (de obicei pentru a-l trimite la un server web pentru procesare).

Formularea Web Populating Programmatic

Dacă în aplicația dvs. de desktop utilizați TWebBrowser pentru a afișa pagini web, puteți controla programatic formularele web: manipulați, modificați, completați, populați câmpurile unui formular web și trimiteți-l.

Iată o colecție de funcții personalizate Delphi pe care le puteți utiliza pentru a enumera toate formularele web pe o pagină web, pentru a prelua elemente de intrare, pentru a popula câmpuri programatic și pentru a trimite în final formularul.

Pentru a urmări mai ușor exemplele, să spunem că există un control TWebBrowser numit „WebBrowser1” pe un formular Delphi (Windows standard).

Notă: ar trebui să adăugați MSHTML la clauza de utilizare pentru a compila metodele enumerate aici.

Enumerați numele formularelor web, obțineți un formular web după index

În majoritatea cazurilor, o pagină web ar avea un singur formular web, dar unele pagini web pot avea mai mult de un formular web. Iată cum puteți obține numele tuturor formularelor web pe o pagină web:

 funcţie WebFormNames (const document: IHTMLDocument2): TStringList; var   forme: IHTMLElementCollection; formular: IHTMLFormElement; idx: număr întreg; începe   formulare: = document.Forms ca IHTMLElementCollection; rezultat: = TStringList.Create;   pentru idx: = 0 la -1 + forme.lungime do   începe     form: = formulare.item (idx, 0) ca IHTMLFormElement; rezultat.Add (nume.form);   Sfârșit; Sfârșit; 

O simplă utilizare pentru a afișa lista de nume de formular web într-un TMemo:

 var   forme: TStringList; începe   formulare: = WebFormNames (WebBrowser1.Document) LA FEL DE IHTMLDocument2);   încerca     memo1.Lines.Assign (formulare);   in cele din urma     forms.Free;   Sfârșit; Sfârșit; 

Iată cum se face obțineți instanța unui formular web după index. Pentru o singură pagină de formular, indicele ar fi 0 (zero).

 funcţie WebFormGet (const formNumber: număr întreg; const document: IHTMLDocument2): IHTMLFormElement; var   forme: IHTMLElementCollection; începe   formulare: = document.Forms la fel de IHTMLElementCollection; rezultat: = formulare.Item (formNumber, ") la fel de IHTMLFormElement Sfârșit;