Форум: "Начинающим";
Текущий архив: 2011.10.09;
Скачать: [xml.tar.bz2];
ВнизСобытие OnTimer Найти похожие ветки
← →
Alex_C (2011-06-20 15:48) [0]Событие OnTimer компонента TTimer выполняется в основном потоке или как у мультимедийного таймера в отдельном?
← →
Palladin © (2011-06-20 15:50) [1]в основном
← →
Alex_C (2011-06-20 15:55) [2]Спасибо!
Т.е. как я понимаю синхронизировать работу 2-х TTimer, если они работают с одним и тем же окном вывода , нет надобности? Потому как одновременно обратиться они к нему не смогут.
← →
Palladin © (2011-06-20 16:05) [3]OnTimer это компонент-обертка над событием WM_TIMER, которое обрабатывает очередь сообщений, а очередь это очередь... как в магазине...
← →
Медвежонок Пятачок © (2011-06-20 16:05) [4]осталось только спросить себя - зачем вообще нужны два таймера
← →
Anatoly Podgoretsky © (2011-06-20 16:23) [5]> Alex_C (20.06.2011 15:48:00) [0]
Это событийно ориентированый компонент
← →
Anatoly Podgoretsky © (2011-06-20 16:24) [6]> Alex_C (20.06.2011 15:55:02) [2]
Могут, если таймер не запрещен, при этом один таймер не влияет на другой.
← →
MsGuns © (2011-06-21 13:36) [7]Удалено модератором
← →
Хреань (2011-06-22 14:06) [8]> Anatoly Podgoretsky © (20.06.11 16:24) [6] Могут, если таймер не запрещен, при этом один таймер не влияет на другой.
Толя, не запутывай человека, он и сам по себе запутается.
> Alex_C (20.06.11 15:55) [2]
Методы OnTimer() двух таймеров будут выполняться в разное время, по очереди, не пересекаясь, не одновременно. Таймеры работают в одном потоке, и события таймеров будут обрабатываться в одном потоке по очереди. Одновременно методы OnTimer() выполняться не будут. В ходе своей работы любая программа (Application: TApplication) циклически делает выборку сообщений из очереди в основном потоке и вызывает обработчики соответствующих сообщений, то есть, само собой разумеется, что обработчики эти вызываются по очереди в основном потоке; но если твоя программа будет долго выполнять какие-то вычисления и перестанет делать выборку из очереди сообщений, то и методы OnTimer() срабатывать не будут; такая ситуация будет сохраняться вплоть до момента, когда программа закончит длительные вычисления и снова начнет делать выборку сообщений; кстати, для таких ситуаций есть метод Application.ProcessMessages(), который принудительно инициирует выборку сообщений из очереди, в том числе - и сообщений таймера; то есть, если вызвать Application.ProcessMessages(), то внутри этого метода будут выбраны имеющиеся там сообщения таймеров и вызваны соответствующие таймерам обработчики событий OnTimer(); при этом в очереди будут находиться сообщения таймеров, попавшие в нее (их туда кидает операционная система) в период между предыдущим циклом выборки сообщений и текущим циклом, инициированным этим самым Application.ProcessMessage().
← →
icWasya © (2011-06-22 16:50) [9]> Хреань (22.06.11 14:06) [8]
..... в доме который построил Джек.
← →
Alex_C (2011-06-22 17:30) [10]Спасибо всем :) Ну меня не так уж и просто запутать :)
Теперь отдельно для Хреань:
ответь мне, дорогой товарищь, почему ты не издаешь книги, а издают их не поймешь кто!
Очень редко когда можно прочитать столь толковое и понятное объяснение, а самое главное - полное! После такого объяснения вопросов не остается. Спасибо большое!!!!
← →
Alex_C (2011-06-22 17:33) [11]В догонку:
Скопировал то, что написал Хреань себе в комп - и другим не "профи" советую сделать тоже самое - во всяком случае для меня этот вопрос закрыт!
Еще раз спасибо!
← →
Юрий Зотов © (2011-06-22 17:42) [12]
> Alex_C (22.06.11 17:30) [10]
> а издают их не поймешь кто!
Ну, не все так уж плохо. Ведь товарищ Хреань откуда все это узнал? В конечном счете, из тех же самых книжек. Значит, хорошие книжки все же есть.
PS
А написано и правда хорошо - полно, просто и понятно.
PPS
Еще бы на абзацы разбить...
:o)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2011.10.09;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.012 c