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

Вниз

почему 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.011 c
2-1238999216
Дмитрий
2009-04-06 10:26
2009.05.24
Помогите обработать HResult


15-1237909318
Anglosax
2009-03-24 18:41
2009.05.24
Как продать брата?


2-1239168222
Den1111
2009-04-08 09:23
2009.05.24
Проблема с ListBox


6-1203280510
Strate
2008-02-17 23:35
2009.05.24
Определение имени процесса, которому пришёл пакет.


15-1237977745
Andy BitOff
2009-03-25 13:42
2009.05.24
Пользователям Оперы и знатокам JavaScript





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