Mega Code Archive

 
Categories / Delphi / LAN Web TCP
 

Get select list selection from TWebBrowser

Title: get select list selection from TWebBrowser? //Add MSHTML to your USES clause //Add a TWebBrowser //Add 2 buttons //Add an editbox ////////////////////////////////////////////////////////////////////// function IsSelectElement(eleElement: IHTMLElement): Boolean; var selElement: IHTMLSelectElement; begin Result := False; try selElement := eleElement as IHTMLSelectElement; except Exit; end; Result := True; end; ////////////////////////////////////////////////////////////////////// function GetListBoxOption(Web1: TWebBrowser; strListBoxName: string; intInstance: Integer): string; var eleChild: IHTMLElement; eleElement: IHTMLElement; colGrandParents: IHTMLElementCollection; colParents: IHTMLElementCollection; selElement: IHTMLSelectElement; intCount: Integer; intG: Integer; intGMax: Integer; intSelected: Integer; Document: IHTMLDocument2; begin Result := ''; intCount := -1; //Magic declarations Document := Web1.Document as IHTMLDocument2; if Document = nil then Exit; colGrandParents := Document.All; if colGrandParents = nil then Exit; intGMax := colGrandParents.Length - 1; for intG := 0 to intGMax do begin eleElement := colGrandParents.Item(intG, '') as IHTMLElement; if IsSelectElement(eleElement) then begin selElement := eleElement as IHTMLSelectElement; if selElement.Name = strListBoxName then begin //Found a list box with the correct name. Inc(intCount); if intCount = intInstance then begin //Found the instance with the correct name. intSelected := selElement.selectedIndex; colParents := eleElement.children as IHTMLElementCollection; eleChild := colParents.Item(intSelected, '') as IHTMLElement; Result := eleChild.InnerText; end; end; end; end; end; procedure TForm1.Button1Click(Sender: TObject); begin WebBrowser1.Navigate('http://www.swissdelphicenter.ch/torry'); end; procedure TForm1.Button2Click(Sender: TObject); begin Edit1.Text := GetListBoxOption(WebBrowser1, 'select', 0); end;