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

Вниз

почему OnIdle перестает вызываться   Найти похожие ветки 

 
SkyN   (2009-04-07 14:45) [0]

почему OnIdle перестает вызываться, если не трогаю приложение некоторое время?


 
SkyN   (2009-04-07 14:50) [1]

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


 
{RASkov} ©   (2009-04-07 15:11) [2]

> [0] SkyN   (07.04.09 14:45)

А с var Done: Boolean у тебя что?


 
Amoeba ©   (2009-04-07 15:22) [3]

Не надо запихивать запись лога в OnIdle. Это событие не для этого существует.


 
SkyN   (2009-04-07 16:08) [4]

to {RASkov}:
Done по логике программы могу возвращать разную. в логе информации о том что возвращаю сейчас нет.
to Amoeba:
т.е. проблема в записи лог файла? ещё какие ограничения есть? )))


 
Сергей М. ©   (2009-04-07 16:22) [5]


> дальше, если не трогать приложение, то ..от OnIdle  сообщений уже нет


Потому что событие Idle не происходит.
Соответственно процедура OnIdle не вызывается.


 
Anatoly Podgoretsky ©   (2009-04-07 16:26) [6]

Так откуда оно возникнет, если "не трогать приложение"


 
SkyN   (2009-04-07 17:42) [7]

от таймера
таймер исправно, раз в секунду, срабатывает


 
Игорь Шевченко ©   (2009-04-07 17:46) [8]


> от таймера


от таймера оно не возникнет


 
{RASkov} ©   (2009-04-07 20:06) [9]

> [4] SkyN   (07.04.09 16:08)

Вообще верное замечание [3] по поводу записи лога в данном событии.... Оно точно не для этого...

А вот Done нужно False ставить, чтоб данное событие не переставало генерироваться....


 
SkyN   (2009-04-08 15:44) [10]

мне не надо чтобы событие было в цикле, т.е. Done я регулярно ставлю в True. Но я хочу, чтобы каждый раз, когда пользователь поменял настройки, произошло событие от таймера, пришли данные по DDE, моё приложение отреагировало на любое событие windows, в любом из этих случаев последним действием (т.е. очередь событий пуста) вызвался бы мой код.

но если пришло много данных по DDE, то мой код должен вызваться только один раз.


 
Sapersky   (2009-04-08 16:16) [11]

ИМХО, проще и надёжнее выставлять какой-то флаг и проверять его в таймере.
OnIdle с Done = True предназначено, как мне кажется, в основном для определения момента завершения пользовательского ввода. При этом можно выполнить некие "отложенные" второстепенные действия, которые нежелательно вешать на события контролов во избежание заметных тормозов (например, действие продолжительностью 100-200 мс в OnMouseMove). Ещё можно (и даже лучше) вынести эти действия в отдельный поток, но это требует синхронизации; OnIdle в этом смысле проще.


 
Сергей М. ©   (2009-04-08 23:00) [12]


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


Можно подумать, что какой-то там бедняга-пользователь, "меняющий настройки", обязан "по твоему хотенью" знать о каком-то там "таймере"..


 
Германн ©   (2009-04-09 00:23) [13]


> Сергей М. ©   (08.04.09 23:00) [12]
>
>
> > хочу, чтобы каждый раз, когда пользователь поменял настройки,
>
> >  произошло событие от таймера,
>
>
> Можно подумать, что какой-то там бедняга-пользователь, "меняющий
> настройки", обязан "по твоему хотенью" знать о каком-то
> там "таймере"..
>

Неверно прочитал. Там не было никакой причинно-следственной связи между сменой настроек и событиями таймера.

P.S.
Но сама задача мне плохо ясна.



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

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

Наверх




Память: 0.5 MB
Время: 0.016 c
3-1221456538
checkmate-maker
2008-09-15 09:28
2009.05.24
ODAC. Параметризованные запросы.


3-1221223824
KirillRepin
2008-09-12 16:50
2009.05.24
Загрузка рисунка из БД в TImage


15-1237411802
Юрий
2009-03-19 00:30
2009.05.24
С днем рождения ! 19 марта 2009 четверг


15-1237897102
Я
2009-03-24 15:18
2009.05.24
Выключение компа


3-1221141096
greg123
2008-09-11 17:51
2009.05.24
Помогите написать запрос на select