Hantera webbformulär med hjälp av TWebBrowser

TWebBrowser Delphi-kontrollen ger åtkomst till webbläsarfunktionaliteten från dina Delphi-appar - så att du kan skapa ett anpassat webbsökningsprogram eller lägga till internet-, fil- och nätverkssökning, dokumentvisning och datahämtningsfunktioner till dina applikationer.

Webblankett

EN webbformulär eller a formulär på en webbsida gör att en webbsökare kan ange data som i de flesta fall skickas till servern för behandling.

Den enklaste webbformen kan bestå av en ingångselement (redigera kontroll) och a Skicka in knapp. De flesta webbsökmotorer (som Google) använder ett sådant webbformulär för att du kan söka på internet.

Mer komplexa webbformulär skulle innehålla rullgardinslistor, kryssrutor, radioknappar etc. En webbformulär är ungefär som en standardfönsterform med textinmatning och valkontroller.

Varje formulär skulle innehålla en knapp - en skicka-knapp - som säger webbläsaren att vidta åtgärder på webbformuläret (vanligtvis för att skicka den till en webbserver för behandling).

Programmatiskt populera webbformulär

Om du använder TWebBrowser för att visa webbsidor i din skrivbordsapplikation kan du programmatiskt kontrollera webbformer: manipulera, ändra, fylla, fylla fält i ett webbformulär och skicka in det.

Här är en samling av anpassade Delphi-funktioner som du kan använda för att lista alla webbformulär på en webbsida, för att hämta inmatningselement, för att programmera fält och slutligen skicka in formuläret.

För att lättare följa exemplen, låt oss säga att det finns en TWebBrowser-kontroll med namnet "WebBrowser1" på en Delphi (standard Windows) -formulär.

Obs: du bör lägga till MSHTML till din användningsklausul för att sammanställa de metoder som listas här.

Lista namn på webbformulär, få ett webbformulär efter index

En webbsida skulle i de flesta fall bara ha en webbformulär, men vissa webbsidor kan ha mer än en webbformulär. Så här får du namnen på alla webbformulär på en webbsida:

 fungera WebFormNames (const dokument: IHTMLDocument2): TStringList; var   formulär: IHTMLElementCollection; form: IHTMLFormElement; idx: heltal; Börja   formulär: = dokument. Formar som IHTMLElementCollection; resultat: = TStringList.Create;   för idx: = 0 till -1 + forms.längd do   Börja     form: = forms.item (idx, 0) som IHTMLFormElement; resultat.Lägg (form.namn);   slutet; slutet; 

En enkel användning för att visa listan över webbformulärnamn i en TMemo:

 var   former: TStringList; Börja   former: = WebFormNames (WebBrowser1.Document SOM IHTMLDocument2);   Prova     memo1.Lines.Assign (former);   till sist     forms.Free;   slutet; slutet; 

Så här gör du få förekomsten av ett webbformulär per index. För en enda formsida skulle indexet vara 0 (noll).

 fungera WebFormGet (const formNumber: heltal; const dokument: IHTMLDocument2): IHTMLFormElement; var   formulär: IHTMLElementCollection; Börja   formulär: = dokument. Formar som IHTMLElementCollection; resultat: = forms.Item (formNumber, ") som IHTMLFormElement slutet;