type
TForm1 = class(TForm)
EmbeddedWB1: TEmbeddedWB;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
EmbeddedWB1.Navigate('C:\Documents and Settings\Administrator\桌面\index2.htm');
end;
procedure TForm1.Button1Click(Sender: TObject);
var IDoc1: IHTMLDocument2;
iELC : IHTMLElementCollection ;
i:integer;
spDisp: IDispatch;
HtmlSelectEle : IHTMLSelectElement;
S2 : string;
oIDocment: IHTMLDocument2;
IHtmlWin:IHTMLWindow2;
begin
oIDocment := EmbeddedWB1.Document as IHTMLDocument2;
EmbeddedWB1.Document.QueryInterface(IHTMLDocument2,IDoc1);
if idoc1<>nil then
begin
ielc:=idoc1.Get_all;
for i:=0 to ielc.length-1 do
begin
spDisp := ielc.item(i, 0);
if SUCCEEDED(spDisp.QueryInterface(IHTMLSelectElement ,HtmlSelectEle))then
with HtmlSelectEle do
begin
S2:=Type_;
S2:=UpperCase(S2);
if (StrComp(PChar(S2),'SELECT-ONE')=0) then
begin
S2:=name;
if (StrComp(PChar(S2),'D1')=0) then
selectedIndex:=1;
end;
end;
end;
end;
end;
{ To test this code put a TWebBrowser and A TButton component on the form }
function FillForm(WebBrowser: TWebBrowser; FieldName: string; Value: string): Boolean;
var
i, j: Integer;
FormItem: Variant;
begin
Result := False;
//no form on document
if WebBrowser.OleObject.Document.all.tags('FORM').Length = 0 then
begin
Exit;
end;
//count forms on document
for I := 0 to WebBrowser.OleObject.Document.forms.Length - 1 do
begin
FormItem := WebBrowser.OleObject.Document.forms.Item(I);
for j := 0 to FormItem.Length - 1 do
begin
try
//when the fieldname is found, try to fill out
if FormItem.Item(j).Name = FieldName then
begin
FormItem.Item(j).Value := Value;
Result := True;
end;
except
Exit;
end;
end;
end;
end;
//When the document is complete try to fill out the field homepage with the url
procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
begin
if FillForm(WebBrowser1, 'homepage', 'http://www.swissdelphicenter.ch') = False then
ShowMessage('Error. Field not available or no Form found.');
end;
// Show the Webbrowser-Progress in Label1
procedure TForm1.WebBrowser1ProgressChange(Sender: TObject; Progress, ProgressMax: Integer);
begin
if ProgressMax = 0 then
begin
label1.Caption := '';
Exit;
end;
try
if (Progress <> -1) and (Progress <= ProgressMax) then
label1.Caption := IntToStr((Progress * 100) div ProgressMax) + '% loaded...'
else
label1.Caption := '';
except
on EDivByZero do Exit;
end;
end;
//For example you can load the page /en/addtip.php to the TWebBrowser
//When the document is Complete the form where you can put your homepage
//address is filled out
procedure TForm1.Button1Click(Sender: TObject);
begin
Webbrowser1.Navigate('http://www.swissdelphicenter.ch/en/addtip.php');
// Show the Titel of the currently active Webpage in the titlebar
// Den Titel der aktuellen Webseite in der Titeleiste anzeigen
Caption := Webbrowser1.OleObject.Document.Title;
end;