Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.06.2012, 16:48   #1
поБЕДА
 
Регистрация: 24.06.2009
Сообщений: 7
Печаль TWebBrowser.navigate в цикле

При вызове метода Navigate внутри "вечного" цикла конструкция:
Код:
while not (Application.Terminated) do
begin
  case intparam of
     0 : begin
            wb.navigate(urltext);
            while (WB.ReadyState <> READYSTATE_COMPLETE)
                     and not (Application.Terminated) do
            begin
               Application.ProcessMessages;
               Sleep(0);
            end;
            intparam:=1;
          end;
    1 : begiin
            procA;
            intparam:=0;
         end;        
end;
не работает. ProcA выполняется до выполнения wb.documentcomplate.
Что это? И как с ним бороться?

Последний раз редактировалось Stilet; 23.07.2012 в 11:25.
поБЕДА вне форума Ответить с цитированием
Старый 26.06.2012, 17:11   #2
volvo877
Форумчанин
 
Аватар для volvo877
 
Регистрация: 01.06.2009
Сообщений: 108
По умолчанию

Цитата:
Что это?
Это многофреймовая страничка.
Цитата:
И как с ним бороться?
Использовать не глюкодром в виде ReadyState <> READYSTATE_COMPLETE, а событие OnDocumentComplete WebBrowser-а, в котором ловить событие завершения загрузки для фрейма верхнего уровня.
volvo877 вне форума Ответить с цитированием
Старый 03.07.2012, 11:25   #3
поБЕДА
 
Регистрация: 24.06.2009
Сообщений: 7
По умолчанию

Спасибо volvo877 за внимание к моей проблеме.
С TWebBrowser раньше работать не приходилось.
В HTML я новичок, в страницах которые я пытаюсь загрузить тег
FRAME отсутствует. Для разбивки этих страниц используются теги
TABLE и DIV. По этому, если можно подробнее укажите на что обратить
внимание.

По видимому, кроме помещения TWebBrowser.Navigate() во вторичный поток и его
синхронизации, других решений не наблюдается. Но всё же интересно почему ожидать загрузку страницы вне цикла удается, а внутри цикла нет? И Readystate и
Busy вне цикла нормально отрабатывают.

Последний раз редактировалось Stilet; 23.07.2012 в 11:30.
поБЕДА вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
путь к htm файлу Webbrowser.navigate(' '); Arsenx777 Общие вопросы Delphi 6 28.06.2011 10:54
WebBrowser.Navigate в дополнительном потоке Crystallon Общие вопросы Delphi 3 13.10.2010 11:24
Закрытие программы после webbrowser1.Navigate ntro123 Общие вопросы Delphi 4 18.07.2010 15:22
Incompatible types: 'Unit1.TWebBrowser' and 'SHDocVw.TWebBrowser' simon15x Общие вопросы Delphi 0 10.04.2010 03:11
TWebBrowzer.Navigate saltik Компоненты Delphi 5 22.09.2008 14:51