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

Вниз

Непонятное поведение 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.006 c
2-1208075381
assassin8899
2008-04-13 12:29
2008.05.11
ADOTable и ADOQuery


15-1206945625
TUser
2008-03-31 10:40
2008.05.11
Чтение файлов


15-1206967558
kalexi
2008-03-31 16:45
2008.05.11
Как работают сканеры памяти?


2-1208144663
Balkonnn
2008-04-14 07:44
2008.05.11
Запись в качестве свойства класса


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