SomewhereSomeh_w |
Отправлено: 07.12.2004, 02:04 |
|
Не зарегистрирован
|
Всем доброго времени суток, описываю вкратце суть вопроса. Есть некая функция которая вызывает в цикле метод CppWebBrowser->Navigate, например,
CODE |
void __fastcall TForm1::Process()
{
TStringList * Links = new TStringList();
.......
for (int i = 0; i < Links->Count;i++)
CppWebBrowser->Navigate(Links->Strings[i],NULL,NULL,NULL,NULL);
} |
Требуется прежде чем переходить по следующей ссылке, дождаться выполнения обработчика OnDocumentComplete. Т.е. алгоритм такой: Идем по первой ссылке, дожидаемся пока страница загрузится и выполнится обработчик, идем по второй ссылке, дожидаемся пока страница загрузится и выполнится обработчик и т.д. пока список ссылок не закончится. У кого-нибудь есть идеи как это сделать? |
|
AVC |
Отправлено: 07.12.2004, 09:10 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
А почуму-бы не использовать флаги?
|
|
SomewhereSomehow |
Отправлено: 07.12.2004, 12:54 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 18
|
Поподробнее плиз!! Какие флаги? |
|
creater |
Отправлено: 07.12.2004, 14:35 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 120
|
QUOTE (SomewhereSomehow @ 07/12/2004, 13:56) | Поподробнее плиз!! Какие флаги? |
int flag = 0;
int flag = 1; |
|
AVC |
Отправлено: 07.12.2004, 15:17 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
Первое, что приходит в голову:
CODE |
//Form1.h
private:
bool FIsDocumentComplete;
//Form1.cpp
void __fastcall TForm1::Process()
{
TStringList * Links = new TStringList();
.......
for (int i = 0; i < Links->Count;i++)
{ FIsDocumentComplete = false;
CppWebBrowser->Navigate(Links->Strings[i],NULL,NULL,NULL,NULL);
while (!FIsDocumentComplete)
Application->ProcessMessages(); // здесь можно проверить время и ждать не более n секунд или выходить по нажатию кнопки
}
//В обработчике события OnDocumentComplete
FIsDocumentComplete = true;
| |
|
SomewhereSomehow |
Отправлено: 07.12.2004, 17:07 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 18
|
Все спасибо разобрался!
вот такая шняга получилась в качестве задержки =)
while(CppWebBrowser->ReadyState!=4)
Application->ProcessMessages(); |
|
Георгий |
Отправлено: 07.12.2004, 21:22 |
|
Почетный железнодорожник
Группа: Модератор
Сообщений: 874
|
изврат!
а delay или sleep в цикл поставить не хочешь? а то если коннект медленный загрузка будет длится долго, а загрузка проца ~100% что не всем нравится.
|
|
SomewhereSomehow |
Отправлено: 08.12.2004, 18:01 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 18
|
Да, согласен с загрузкой проца г-но полное... Наверное таймер всеж-таки поставлю чтоб не так резво каждый раз проверял состояние загрузки страницы в браузере.
Отредактировано SomewhereSomehow — 08/12/2004, 19:04 |
|