Программное управление TWebBrowser
Код:
var
Main: TMain;
Data:Variant;
implementation
uses MSHTML;
(*загрузка Гугля*)
procedure TMain.Button1Click(Sender: TObject);
var
SmUrl,HtmlCode:string;
Flags, TargetFrameName, PostData, Headers: Olevariant;
Document:IHTMLDocument2; (*Перем типа*)
begin
Wbbr.Navigate(Edit1.Text, Flags, TargetFrameName, PostData, Headers);
Document:=Wbbr.Document as IHTMLDocument2;
if Assigned(Document) then
HtmlCode:=Document.body.innerHtml;
Memo1.Text:=HtmlCode;
end;
(*находим форму ввода поисковых слов и вводим их*)
procedure TMain.Button2Click(Sender: TObject);
var
I,J:integer;
begin
for I := 0 to (Wbbr.OleObject.Document.forms.Item(0).Elements.Length-1) do
begin
if Wbbr.OleObject.Document.Forms.Item(I).Elements.Name='f' then
Data:=Wbbr.OleObject.Document.Forms.Item(I).Elements;
Break;
end; (*находим нужную форму по имени*)
for J := 0 to (Data.Length-1) do
begin
if (Data.Item(J).Name='q') then Data.Item(J).Value:=Edit2.Text;
end; (*копируем в строку ввода на странице символы из ЕДИТ2*)
end;
(*находим кнопку начать поиск и программно жмем ея*)
procedure TMain.Button3Click(Sender: TObject);
var J:integer;
begin
for J := 0 to (Data.Length-1) do
begin
if (Data.Item(J).value='Поиск в Google') then
//(Wbbr.Document as IHTMLDocument2).ParentWindow.Focus;
Data.Item(J).Click;
end;
end;
Main: TMain;
Data:Variant;
implementation
uses MSHTML;
(*загрузка Гугля*)
procedure TMain.Button1Click(Sender: TObject);
var
SmUrl,HtmlCode:string;
Flags, TargetFrameName, PostData, Headers: Olevariant;
Document:IHTMLDocument2; (*Перем типа*)
begin
Wbbr.Navigate(Edit1.Text, Flags, TargetFrameName, PostData, Headers);
Document:=Wbbr.Document as IHTMLDocument2;
if Assigned(Document) then
HtmlCode:=Document.body.innerHtml;
Memo1.Text:=HtmlCode;
end;
(*находим форму ввода поисковых слов и вводим их*)
procedure TMain.Button2Click(Sender: TObject);
var
I,J:integer;
begin
for I := 0 to (Wbbr.OleObject.Document.forms.Item(0).Elements.Length-1) do
begin
if Wbbr.OleObject.Document.Forms.Item(I).Elements.Name='f' then
Data:=Wbbr.OleObject.Document.Forms.Item(I).Elements;
Break;
end; (*находим нужную форму по имени*)
for J := 0 to (Data.Length-1) do
begin
if (Data.Item(J).Name='q') then Data.Item(J).Value:=Edit2.Text;
end; (*копируем в строку ввода на странице символы из ЕДИТ2*)
end;
(*находим кнопку начать поиск и программно жмем ея*)
procedure TMain.Button3Click(Sender: TObject);
var J:integer;
begin
for J := 0 to (Data.Length-1) do
begin
if (Data.Item(J).value='Поиск в Google') then
//(Wbbr.Document as IHTMLDocument2).ParentWindow.Focus;
Data.Item(J).Click;
end;
end;
Практически все работает, но если после нажатия на Батон2 не кликнуть на ТВебБраузер мышью, то при нажатии на Батон3 загрузка страницы не присходит
Если кто в курсе, скажите что не так еще.