Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Окончание загрузки страницы в WebBrowser 
V
    Опции темы
Vladimir_K
Дата 19.1.2008, 23:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 2.12.2006

Репутация: нет
Всего: 1



Для проверки начала загрузки страницы в WebBrowser использую свойство OnDownloadBegin, а для окончания загрузки страницы - свойство OnDownloadComplete, но оно срабатывает раньше, чем страница загружается полностью, со всеми картинками и пр.
Есть ли альтернативный способ проследить полную загрузку?
--------------------
Судя по всему, у меня огромное количество мозгов - мне требуется уйма времени, чтобы ими пораскинуть
PM MAIL ICQ   Вверх
VICTAR
Дата 19.1.2008, 23:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1108
Регистрация: 6.10.2006

Репутация: 3
Всего: 80



OnDocumentComplete?
PM MAIL   Вверх
LEE_ROY
Дата 20.1.2008, 01:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 3.12.2006

Репутация: нет
Всего: нет



Цитата(VICTAR @ 19.1.2008,  23:45)
OnDocumentComplete?

+ OnNavigateComplete
PM MAIL   Вверх
VoV_I_K
Дата 20.1.2008, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 19.3.2007

Репутация: 1
Всего: 1



Народ! А ведь встроенную справку в делфи еще никто не отменял да?

This example shows how to detect when a document is completely loaded, even if it includes multiple frames. Only the final OnDocumentComplete event passes the same Dispatch interface as the OnNavigateComplete event handler.

Код

var

  CurDispatch: IDispatch; {save the interface globally }

procedure TForm1.WebBrowser1NavigateComplete2(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant);

begin
  if CurDispatch = nil then
    CurDispatch := pDisp; { save for comparison }
end;

procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant);
begin
  if (pDisp = CurDispatch) then
  begin
    Beep; {the document is loaded, not just a frame }
    CurDispatch := nil; {clear the global variable }
  end;
end;


Это сообщение отредактировал(а) VoV_I_K - 20.1.2008, 16:10
PM MAIL   Вверх
mmvds
Дата 20.1.2008, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 22.12.2007

Репутация: 1
Всего: 6



Насколько я знаю у данных свойств проблемы с IE7, поэтому использую сторонний компонент EmbeddedWB, кстати в нем гораздо больше возможностей чем в WebBrowser.

Это сообщение отредактировал(а) mmvds - 20.1.2008, 18:46
PM MAIL ICQ   Вверх
Vladimir_K
Дата 20.1.2008, 18:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 2.12.2006

Репутация: нет
Всего: 1



VoV_I_K, а в какую из этих процедур мне вставлять свои команды, которые должны выполняться по окончании загрузки?
Сейчас попробовал, вроде бы сюда: procedure TForm1.WebBrowser1DocumentComplete, если условие выполняется. Или не так?
--------------------
Судя по всему, у меня огромное количество мозгов - мне требуется уйма времени, чтобы ими пораскинуть
PM MAIL ICQ   Вверх
VoV_I_K
Дата 20.1.2008, 19:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 19.3.2007

Репутация: 1
Всего: 1



Что бы не возникало больше вапросов обьясню!
NavigateComplete2 возникает когда приходит первая порция данных с сервера
pDisp хранит ссылку на интрерфейс главное страницы...т.е. той в которую могут быть вложены фреймы
DocumentComplete срабатывает каждый раз при окончании загрузки документа(фрейма)
Мы просто проверяем в каждом DocumentComplete , какой документт окончил загрузку и если это документ который был первым-главным, то все ОК!!! страницы  загружена полностью

Для тех кому лень читать! 
procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant);
begin
  if (pDisp = CurDispatch) then
  begin
    Beep; {the document is loaded, not just a frame }
    CurDispatch := nil; {clear the global variable }
ВОТ СЮДА НАДО ВСТАВЛЯТЬ 
  end;
end;

И действительно юзай EmbeddedWB!!! он реально лучше
PM MAIL   Вверх
Vladimir_K
Дата 20.1.2008, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 2.12.2006

Репутация: нет
Всего: 1



Спасибо огромное всем! Вопрос решен. smile 
По крайней мере:
1. этот вопрос,
2. на сегодня.
 smile 
--------------------
Судя по всему, у меня огромное количество мозгов - мне требуется уйма времени, чтобы ими пораскинуть
PM MAIL ICQ   Вверх
MadCoder
Дата 23.6.2008, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 478
Регистрация: 24.8.2007
Где: Москва

Репутация: нет
Всего: 2



По-моему, это решается так:
Код

  while WebBrowser1.ReadyState<>4 do
  Application.ProcessMessages;
// Тут пиши, что будет после загрузки

PM WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.1227 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.