Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2007.08.12;
Скачать: [xml.tar.bz2];

Вниз

Ожидание загрузки страницы!   Найти похожие ветки 

 
JanMihail ©   (2007-05-31 18:48) [0]

Уважаемые мастера! Помогите справится с такой задачей. Мне нужно организовать задержку программы до тех пор, пока не загрузится страница в компоненте TWebBrowser. Делаю так:

procedure Start;
label Nachalo;
begin
Nachalo:
 //тут много кода
 ........................
 while WebBrowser1.ReadyState <> 4 do
   Application.ProcessMessages;

 WebBrowser1.Navigate("новая страница");
 goto Nachalo;
end;


Но такой цикл очень сильно грузит процессор. Но проблема еще в том что после первого прохода процедуры все нормально. Параметр ReadyState становится равным 4, дальше я назначаю WebBrowserу новую страницу. Иду в начало, а цикл не выполняется, т.к. параметр ReadyState еще не успел поменять свое значение с 4 на 1, а цикл уже прошел и ожижать загрузки он не стал.
Не подскажете, как вообще это реализовать рационально?. Заранее спасибо!!!


 
G_M_S ©   (2007-05-31 18:51) [1]


> Мне нужно организовать задержку программы до тех пор, пока
> не загрузится страница в компоненте TWebBrowser.


while WebBrowser1.Busy do Application.ProcessMessages;


 
TStas ©   (2007-06-01 16:44) [2]

Или OnNawigate использовать


 
clickmaker ©   (2007-06-01 16:50) [3]

OnDocumentComplete


 
DVM ©   (2007-06-01 16:51) [4]


> while WebBrowser1.Busy do Application.ProcessMessages;

Это по-твоему задержка? Если на форме есть, например, кнопка, то на нее можно будет нажать и будет выполнен обработчик события связанный с нажатием этой кнопки.


 
Arm79 ©   (2007-06-01 17:40) [5]

function TfrmMain.GetPlainText(const HTMLStr: string): string;
 var
   sTemp : string;
   Doc   : IHTMLDocument2;
   V     : Variant;
begin
 sTemp   := HTMLStr;

 if wbTransformer.Document = nil
 then begin
   wbTransformer.Navigate("about:blank");
   repeat
     Application.ProcessMessages;
   until wbTransformer.Document <> nil;
 end;

 Doc     := IHTMLDocument2(wbTransformer.Document);
 v       := VarArrayCreate([0, 0], varVariant);
 v[0]    := sTemp;
 Doc.write(PSafeArray(TVarData(v).VArray));
 Doc.close;

 Result := Doc.body.outerText;
end;


 
G_M_S ©   (2007-06-01 18:12) [6]


> Это по-твоему задержка?

Поставь вместо "Application.ProcessMessages" просто ";", если не надо ожидать каких-либо действий юзера.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2007.08.12;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.045 c
2-1184604147
Ivolg
2007-07-16 20:42
2007.08.12
Про Canvas


2-1184772072
velis
2007-07-18 19:21
2007.08.12
scrollbar и ползунок


2-1184835818
pathfinder
2007-07-19 13:03
2007.08.12
Переделка компонентов..


2-1184307465
vico
2007-07-13 10:17
2007.08.12
Как получить адрес объекта из метода этого же объекта?


15-1184149445
vpbar
2007-07-11 14:24
2007.08.12
Статья 146 УК РФ. Нарушение авторских и смежных прав





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский