<div>Sorry Jeremy,</div>
<div> </div>
<div>I have just come into the group after a while.</div>
<div> </div>
<div>If you are still on this project, one way to do this is as follows (Example dpr, pas and text version of form are below)</div>
<div> </div>
<div>The expected innerHTML on a SELECT tag object or other DOM functions don't always perform in MS for this kind of situation.</div>
<div> </div>
<div>The trick of it using MSHTML_TLB is to get ourselves an instance of IHTMLOptionElementFactory</div>
<div> </div>
<div>Here is the heart of it:</div>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<div>
<p>procedure TForm1.BitBtn3Click(Sender: TObject);<br>var<br> dropElement : IHTMLSelectElement;<br> optionElement : ihtmloptionelement;<br> window2 : IHTMLWindow2 ;<br> makeOPtion : IHTMLOptionElementFactory;<br> count : integer;
<br>begin</p>
<p> dropElement :=<br> (webbrowser1.document as ihtmldocument3).getElementById('ourDropDown') as IHTMLSelectElement;</p>
<p> </p>
<p>//first clear any existing OPTION tags (dropElement as ihtmlelement).innerHTML := '';</p>
<p><br> showmessage((dropElement as ihtmlelement).id + ' ok so far');<br><br> for count := low(displayText) to high(displayText) do<br> begin<br> window2 := (webbrowser1.Document as ihtmldocument2).parentWindow ;<br>
makeOPtion := window2.Option;<br> optionElement := makeOPtion.create(displayText[count],valuesText[count],False,False);<br> dropElement.add(optionElement as ihtmlelement,True);<br> end;</p>
<p>end;</p></div></blockquote>
<div> </div>
<div>===================<br>program DropDown_Example;</div>
<div>
<p>uses<br> Forms,<br> main in 'main.pas' {Form1};</p>
<p>{$R *.res}</p>
<p>begin<br> Application.Initialize;<br> Application.CreateForm(TForm1, Form1);<br> Application.Run;<br>end.<br><br>=================</p></div>
<div>object Form1: TForm1<br> Left = 0<br> Top = 0<br> Width = 656<br> Height = 561<br> Caption = 'Form1'<br> Color = clBtnFace<br> Font.Charset = DEFAULT_CHARSET<br> Font.Color = clWindowText<br> Font.Height = -11
<br> Font.Name = 'Tahoma'<br> Font.Style = []<br> OldCreateOrder = False<br> OnCreate = FormCreate<br> PixelsPerInch = 96<br> TextHeight = 13<br> object Label1: TLabel<br> Left = 40<br> Top = 456<br> Width = 450
<br> Height = 13<br> Caption =<br> 'Click "Initialise" try the drop down box, then Click "Fill Drop ' +<br> 'Down" and try the drop down box.'<br> end<br> object WebBrowser1: TWebBrowser
<br> Left = 40<br> Top = 16<br> Width = 553<br> Height = 377<br> TabOrder = 0<br> ControlData = {<br> 4C00000027390000F72600000000000000000000000000000000000000000000<br> 000000004C000000000000000000000001000000E0D057007335CF11AE690800
<br> 2B2E126208000000000000004C0000000114020000000000C000000000000046<br> 8000000000000000000000000000000000000000000000000000000000000000<br> 00000000000000000100000000000000000000000000000000000000}<br> end
<br> object BitBtn1: TBitBtn<br> Left = 496<br> Top = 488<br> Width = 75<br> Height = 25<br> TabOrder = 1<br> Kind = bkClose<br> end<br> object BitBtn2: TBitBtn<br> Left = 40<br> Top = 408<br> Width = 81
<br> Height = 25<br> Caption = 'Initialise'<br> TabOrder = 2<br> OnClick = BitBtn2Click<br> end<br> object BitBtn3: TBitBtn<br> Left = 128<br> Top = 408<br> Width = 81<br> Height = 25<br> Caption = 'Fill Drop Down'
<br> TabOrder = 3<br> OnClick = BitBtn3Click<br> end<br>end</div>
<div> </div>
<div>==========</div>
<p>unit main;</p>
<p>interface</p>
<p>uses<br> Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,<br> Dialogs, StdCtrls, Buttons, OleCtrls, SHDocVw, mshtml_tlb, activeX;</p>
<p>type<br> TForm1 = class(TForm)<br> WebBrowser1: TWebBrowser;<br> BitBtn1: TBitBtn;<br> BitBtn2: TBitBtn;<br> BitBtn3: TBitBtn;<br> Label1: TLabel;<br> procedure BitBtn3Click(Sender: TObject);<br> procedure FormCreate(Sender: TObject);
<br> procedure BitBtn2Click(Sender: TObject);<br> private<br> { Private declarations }<br> public<br> { Public declarations }<br> end;</p>
<p>var<br> Form1: TForm1;<br> displayText : array [0 .. 2] of string = ('First', 'Second', 'Third');<br> valuesText : array [0 .. 2] of string = ('Chose Number One Option','Chose Number Two Option','Chose Number Three Option');
</p>
<p> implementation</p>
<p>{$R *.dfm}</p>
<p>procedure TForm1.BitBtn2Click(Sender: TObject);<br> // tip from Ron Loewy <a href="mailto:rloewy@hyperact.com">rloewy@hyperact.com</a><br>var<br> v: Variant;<br> HTMLDocument: IHTMLDocument2;<br> HTMLString : string;
<br>begin<br> HTMLString := '<BODY>'<br> +'<Script>function onChoose(drop){text = drop.options[drop.selectedIndex].value ;alert(text);}</script>'<br> +'<textarea style="position:absolute;top:10;left:300 ">Some text</textarea>'
<br> +'<select onclick="onChoose(this)" id="ourDropDown"><option value="will disappear">This will be replaced</option><option value="will also disappear">And So will this</option></select>'
</p>
<p> +'</BODY>';<br> HTMLDocument := WebBrowser1.Document as IHTMLDocument2;<br> v := VarArrayCreate([0, 0], varVariant);<br> v[0] := HTMLString; // Here's your HTML string<br> HTMLDocument.Write
(PSafeArray(TVarData(v).VArray));<br> HTMLDocument.Close;<br>end;</p>
<p>procedure TForm1.FormCreate(Sender: TObject);<br>begin<br>webbrowser1.Navigate('about:blank');<br>end;</p>
<p>procedure TForm1.BitBtn3Click(Sender: TObject);<br>var<br> dropElement : IHTMLSelectElement;<br> optionElement : ihtmloptionelement;<br> window2 : IHTMLWindow2 ;<br> makeOPtion : IHTMLOptionElementFactory;<br> count : integer;
<br>begin</p>
<p> dropElement :=<br> (webbrowser1.document as ihtmldocument3).getElementById('ourDropDown') as IHTMLSelectElement;</p>
<p> (dropElement as ihtmlelement).innerHTML := '';<br> showmessage((dropElement as ihtmlelement).id + ' ok so far');<br>//rough and ready example here<br> for count := low(displayText) to high(displayText) do<br> begin
<br> window2 := (webbrowser1.Document as ihtmldocument2).parentWindow ;<br> makeOPtion := window2.Option;<br> optionElement := makeOPtion.create(displayText[count],valuesText[count],False,False);<br> dropElement.add
(optionElement as ihtmlelement,True);<br> end;</p>
<p>end;</p>
<p>end.</p>
<div>=======</div>
<div> </div>
<div><br><br> </div>
<div><span class="gmail_quote">On 30/03/06, <b class="gmail_sendername">Jeremy Coulter</b> <<a href="mailto:vss@vss.co.nz">vss@vss.co.nz</a>> wrote:</span>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">
<div style="DIRECTION: ltr"><span class="e" id="q_10a4a34fb101f1d7_0">
<div dir="ltr" align="left"><br> </div>
<div></div>
<div><span><font face="Arial" size="2">Hi All.</font></span></div>
<div><span><font face="Arial" size="2">I am just looking into something, and have dropped a TWebBrowser onto a form.</font></span></div>
<div><span><font face="Arial" size="2">I thne download a test webpage and populate the Text of a text box, and checka checkbox, BUT I want to beable to add items to a Dropdown/combo box.</font></span></div>
<div><span><font face="Arial" size="2"></font></span> </div>
<div><span><font face="Arial" size="2">Anyone done this in the past?</font></span></div>
<div><span><font face="Arial" size="2"></font></span> </div>
<div><span><font face="Arial" size="2">Thanks, Jeremy</font></span></div><br>
<p><font size="2">--<br>No virus found in this outgoing message.<br>Checked by AVG Free Edition.<br>Version: 7.1.385 / Virus Database: 268.3.3/296 - Release Date: 29/03/2006<br></font></p><br>
<p><font size="2">--<br>No virus found in this outgoing message.<br>Checked by AVG Free Edition.<br>Version: 7.1.385 / Virus Database: 268.3.3/296 - Release Date: 29/03/2006<br></font></p></span></div><br>_______________________________________________
<br>Delphi mailing list<br><a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:Delphi@ns3.123.co.nz">Delphi@ns3.123.co.nz</a><br><a onclick="return top.js.OpenExtLink(window,event,this)" href="http://ns3.123.co.nz/mailman/listinfo/delphi" target="_blank">
http://ns3.123.co.nz/mailman/listinfo/delphi</a><br><br><br></blockquote></div><br>