Webformulieren manipuleren met behulp van de TWebBrowser

Het TWebBrowser Delphi-besturingselement biedt toegang tot de webbrowserfunctionaliteit vanuit uw Delphi-apps - zodat u een aangepaste webbrowser-applicatie kunt maken of internet-, bestands- en netwerkbrowsen, documentweergave en gegevensdownloadmogelijkheden aan uw applicaties kunt toevoegen..

Webformulieren

EEN online formulier of een formulier op een webpagina Hiermee kan een bezoeker van een webpagina gegevens invoeren die in de meeste gevallen voor verwerking naar de server worden verzonden.

Het eenvoudigste webformulier kan uit één bestaan invoerelement (bewerkingsbesturing) en een voorleggen knop. De meeste webzoekmachines (zoals Google) gebruiken een dergelijk webformulier waarmee u op internet kunt zoeken.

Meer complexe webformulieren zijn vervolgkeuzelijsten, selectievakjes, keuzerondjes, enz. Een webformulier lijkt veel op een standaard Windows-formulier met tekstinvoer en selectiebesturingselementen.

Elk formulier bevat een knop - een verzendknop - die de browser vertelt om actie te ondernemen op het webformulier (meestal om het naar een webserver te sturen voor verwerking).

Programmatisch invullen van webformulieren

Als u in uw desktoptoepassing de TWebBrowser gebruikt om webpagina's weer te geven, kunt u webformulieren programmatisch beheren: velden van een webformulier manipuleren, wijzigen, invullen, invullen en verzenden.

Hier is een verzameling aangepaste Delphi-functies die u kunt gebruiken om alle webformulieren op een webpagina weer te geven, invoerelementen op te halen, velden te programmeren en uiteindelijk het formulier in te dienen.

Om de voorbeelden gemakkelijker te volgen, laten we zeggen dat er een TWebBrowser-besturingselement met de naam "WebBrowser1" op een Delphi-formulier (standaard Windows) is.

Opmerking: u moet toevoegen MSHTML aan uw gebruiksclausule om de hier vermelde methoden te compileren.

Lijst webformuliernamen, krijg een webformulier per index

Een webpagina heeft in de meeste gevallen slechts één webformulier, maar sommige webpagina's kunnen meer dan één webformulier hebben. U kunt als volgt de namen van alle webformulieren op een webpagina verkrijgen:

 functie WebFormNames (const document: IHTMLDocument2): TStringList; var   vormen: IHTMLElementCollection; vorm: IHTMLFormElement; idx: geheel getal; beginnen   vormen: = document.Forms als IHTMLElementCollection; resultaat: = TStringList.Create;   voor idx: = 0 naar -1 + vormen. Lengte Doen   beginnen     form: = form.item (idx, 0) als IHTMLFormElement; result.Add (form.name);   einde; einde; 

Een eenvoudig gebruik om de lijst met webformuliernamen in een TMemo weer te geven:

 var   vormen: TStringList; beginnen   formulieren: = WebFormNames (WebBrowser1.Document NET ZO IHTMLDocument2);   proberen     memo1.Lines.Assign (formulieren);   Tenslotte     forms.Free;   einde; einde; 

Hier is hoe download het exemplaar van een webformulier per index. Voor een enkele formulierpagina zou de index 0 (nul) zijn.

 functie WebFormGet (const formNumber: geheel getal; const document: IHTMLDocument2): IHTMLFormElement; var   vormen: IHTMLElementCollection; beginnen   vormen: = document. formulieren net zo IHTMLElementCollection; resultaat: = formulieren.Item (formNumber, ") net zo IHTMLFormElement einde;