![]() |
|
|
#1
|
|||
|
|||
|
Небольшой баг, пишу так:
Код:
for i := 1 to 1 do begin
WebBrowser1.Navigate('http://www.ya.ru');
Sleep(1500);
WebBrowser1.Navigate('http://www.erepublik.com/en');
Sleep(2000);В общем первую ссылку Веббраузер вообще не воспринимает. Хоть какую задержку ставь он всё равно не переходит по этой ссылке. А вот по 2ой переходит. Но если я вторую поставлю к примеру ya.ru то он перейдёт, в общем не зависит от ссылки, а зависит от места. Что это за баг? |
|
#2
|
||||
|
||||
|
так он у тебя токо начнет переходить и тут же ты переходишь на другой
равносильно этому Код:
WebBrowser1.Navigate('http://www.ya.ru');
WebBrowser1.Navigate('http://www.erepublik.com/en');Код:
for i := 1 to 1 do begin |
|
#3
|
|||
|
|||
|
Да это так. А как мне сделать, что бы он переходил с начало по одной ссылки и потом по второй?
|
|
#4
|
||||
|
||||
|
не пойму а что требуется? Показать человеку один сайт потом другой?
мне такое в голову пришло Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, OleCtrls, SHDocVw;
type
TForm1 = class(TForm)
Timer1: TTimer;
Button1: TButton;
WebBrowser1: TWebBrowser;
procedure Timer1Timer(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Ibrow: integer;
implementation
{$R *.dfm}
procedure TForm1.Timer1Timer(Sender: TObject);
begin
case Ibrow of
0: WebBrowser1.Navigate('http://www.ya.ru');
1: WebBrowser1.Navigate('http://www.erepublik.com/en');
end;
inc(Ibrow);
if Ibrow = 2 then Timer1.Enabled:=false;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Ibrow:=0;
Timer1.Enabled:=true;
end;
end.Последний раз редактировалось ALexandr555, 02.07.2011 в 14:52. |
|
#5
|
|||
|
|||
|
Спасибо. Нет, программа должна перескакивать по ссылкам просто и тырить исх. код, в общем подожду решения ещё до вечера, если не будет, то буду твоё использовать.
|
|
#6
|
||||
|
||||
|
чем мое не устраивает? А если исходдный код то можно куда проще не через такое, но ладно жди решений)
|
|
#7
|
|||
|
|||
|
Просто в твоём большая нагрузка будет из-за таймеров (я так думаю), а мне надо около 70 ссылок переходить.
|
|
#8
|
|||
|
|||
|
а зачем тебе много таймеров добавлять,одного достаточно.
добавь какой нить список с ссылками,например Memo, объяви глобальную переменную i:Integer; и далее код Код:
procedure TForm1.Button1Click(Sender: TObject); begin i:=0; Timer1.Enabled:=True; end; procedure TForm1.Timer1Timer(Sender: TObject); begin WebBrowser1.Navigate(Memo1.Lines[i]); Inc(i); if i=memo1.Lines.Count-1 then Timer1.Enabled:=false; end; |
|
#9
|
||||
|
||||
|
Snake22, лучше бы прочитал предыдущие сообщения особенно #4 и #5
|
|
#10
|
|||
|
|||
|
да,один хрен.он, помоему, подумал что ему под каждую ссылку придектся таймер создавать
Цитата:
|
|
#11
|
|||
|
|||
|
Хорошо, таймер так таймер, спасибо
![]() |
|
#12
|
||||
|
||||
|
Я #7 пропустил сорри, так вот если ему нуже исходный код то
WebBrowser1.Navigate(); глупости Код:
IdHTTP1.Get(); IdHTTP1.Get(); IdHTTP1.Get(); ... Последний раз редактировалось ALexandr555, 02.07.2011 в 15:50. |
|
#13
|
|||
|
|||
|
Да гет-то хорошо, я знаю. Но он не вытаскивает все элементы страницы. Я пытался через гет, но через него исх. код выглядил очень тонко. И вот нашёл вот такой код в инете:
Код:
procedure TForm1.GetCode;
var
iall : IHTMLElement;
begin
if Assigned(WebBrowser1.Document) then
begin
iall := (WebBrowser1.Document AS IHTMLDocument2).body;
while iall.parentElement <> nil do
begin
iall := iall.parentElement;
end;
memo1.Text := iall.outerHTML;
end;
end;Да и вообще зря эта тема, извините что побеспокоил, просто этим способом не получится мне сделать программу, сейчас создам новую тему может подскажут. |
|
#14
|
||||
|
||||
|
Код:
WebBrowser1.Navigate('http://www.delphisources.ru/');
while WebBrowser1.ReadyState<>READYSTATE_COMPLETE do
Application.ProcessMessages;
WebBrowser1.Navigate('http://msdn.microsoft.com/');
while WebBrowser1.ReadyState<>READYSTATE_COMPLETE do
Application.ProcessMessages; |