Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.05.11;
Скачать: CL | DM;

Вниз

Непонятное поведение Application.ProcessMessages   Найти похожие ветки 

 
voe   (2008-04-13 00:27) [0]

В цикле открываю несколько страниц. Для каждой страницы делаю так:

var
FlagsOlevariant;

 Flags:="DLCTL_PRAGMA_NO_CACHE";      
...
Unit1.FormMain.WebBrowser1.Navigate("www.ya.ru",Flags);
while not Unit1.FormMain.WebBrowser1.Busy do Application.ProcessMessages;
while Unit1.FormMain.WebBrowser1.Busy do Application.ProcessMessages;
...


При находжении нужной страницы выхожу из цикла и включаю таймер.

При завершении таймера заново выполняю вышеприведенный код.
Но при наступлении :
while not Unit1.FormMain.WebBrowser1.Busy do Application.ProcessMessages;

Происходит переход в начало события и программа начинает выполнятся заново! и так бесконечно!
Вчем может быть гемарой?


 
Anatoly Podgoretsky ©   (2008-04-13 00:44) [1]

> voe  (13.04.2008 00:27:00)  [0]

Таймер не наблюдается


 
Johnmen ©   (2008-04-13 02:08) [2]


> while not Unit1.FormMain.WebBrowser1.Busy

Прикольно. Бесконечный цикл...:))


 
voe   (2008-04-13 10:31) [3]


> Johnmen ©   (13.04.08 02:08) [2]
>
> > while not Unit1.FormMain.WebBrowser1.Busy
>
> Прикольно. Бесконечный цикл...:))


Бесконечного цикла нет! Обрати внимание на предыдущию строку кода!


> Anatoly Podgoretsky ©   (13.04.08 00:44) [1]
> > voe  (13.04.2008 00:27:00)  [0]
>
> Таймер не наблюдается


Таймер намного ниже. Да и какое отношение он может имет к некоректной работе Application.ProcessMessages ?


 
Palladin ©   (2008-04-13 10:40) [4]

сам ты некорректный. даю 100% что ты его не отключаешь на время работы его же события.


 
voe   (2008-04-13 10:58) [5]

Неотключение таймера может так катастрофично отразится на работе Application.ProcessMessages ?
Все остальное же работает!

Поясни если нетрудно.


 
Palladin ©   (2008-04-13 11:30) [6]

тебе кто сказал, что Application.ProcessMessages некорретно работает? ты просто не до конца понимаешь, что это такое и что такое TTimer. это раз, два мне не видны условия отработки вышеприведенного кода. ты можешь гарантированно сказать что при входе в цикл таймер отключен? и как понять "при завершении таймера"? как ты его отслеживаешь? пока я вижу только одну проблему. и кстати неясно что в самом событии таймера написано. короче: как следишь за таймером?


 
sniknik ©   (2008-04-13 11:32) [7]

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


 
voe   (2008-04-13 14:26) [8]

Большое спасибо sniknik и Palladin.

все как вы сказали я действительно не отключал таймер которым повторно запускал обработку!
Вот почему происходило странный эффект возрата в начало действия!

Всем еще раз спасибо!



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

Текущий архив: 2008.05.11;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.006 c
4-1188820743
Че
2007-09-03 15:59
2008.05.11
Служба


6-1186310546
Lamer666
2007-08-05 14:42
2008.05.11
Счет траффика


15-1206907417
rgrgre
2008-03-31 00:03
2008.05.11
Звук и в наушниках и так


2-1208195427
San1712
2008-04-14 21:50
2008.05.11
Как скопировать поля Items[0].Caption и Items[0].SubItems ?


2-1208111337
assassin8899
2008-04-13 22:28
2008.05.11
Множественный выбор





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