Главная страница
    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.04 c
2-1184181072
Скарамуш
2007-07-11 23:11
2007.08.12
Как узнать имя Picture


1-1180540958
DevilDevil
2007-05-30 20:02
2007.08.12
DragDrop для закладок TTabControl-а


15-1184346684
Vendict
2007-07-13 21:11
2007.08.12
Поклонники MS


2-1184694657
Sdubaruhnul
2007-07-17 21:50
2007.08.12
Что-то вроде событий, вызываемых потоком.


3-1177705087
КрЫска
2007-04-28 00:18
2007.08.12
Символьные даннные из Oracle выдаются как #.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский