Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > TWebBrawser Help me!


Автор: iDenis 18.1.2005, 18:54
Здраствуйте!
Вот проблема:

Мне нужно чтобы принажатии на кнопку загрущалась страница это вот:
Код

procedure TForm1.Button1Click(Sender: TObject);
begin
WebBrowser1.Navigate('http://www.xxx.ru/');
end;


Но мне то нужно чтобы после загрузки на сайт произошло еще действие которое я написал сам, но только после загрузки!

Пожалуйста подскажите как реализовать чтобы по нажатию на кнопку выполнялось 2 действия последовательно
чтобы одно завершилось и только тогда шло второе?

Автор: Гость_UVSoft 18.1.2005, 19:54
а не судьба поискать подходящее событие у WB?

Автор: iDenis 18.1.2005, 20:07
Цитата
а не судьба поискать подходящее событие у WB?

Да там есть OnDownloadComplete, но страница бцдет новая часто а второе действие мне нужно один раз, да и ктомуже событие у меня это зането строкой статуса, вообщем мне так не удобно.

Автор: Гость_UVSoft 18.1.2005, 21:50
imho по другому утебя прервать выполнение программы после Navigate и дождаться конца загрузки не получиться...

Автор: Гость_UVSoft 18.1.2005, 21:54
разве что пустить какой-нить пустой цикл (можно конечно помучаться и с потокамиsmile... и проверять педальку в WB сигнализирующую о том что страница рагружена...

Автор: iDenis 18.1.2005, 22:03
А может все таки как нибудь:

Код

procedure TForm1.Button1Click(Sender: TObject);
begin
WebBrowser1.Navigate('http://www.xxx.ru/');
if ........ then
begin
............
..............
................
end;
end;


Вот только что в if писать ?

Автор: Гость_UVSoft 18.1.2005, 23:57
Попробуй реализовать это через потоки. После Navigate создаешь поток, который отслеживает занят ли WB (свойство Busy) и, если не занят, выполняет определенные действия...

поток:

procedure MyThread.Execute;
begin
while not terminate do
if not form1.wb.busy then begin
form1.DO_IT;
self.terminate;
end;
end;

в самой программе:

var
t: MyThread;

procedure TForm1.DO_IT;
begin
....
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
wb.Navigate('www......ru');
t := MyThread.Create(false);
end;

как-то такsmile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)