Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как сделать таймер в потоке


Страницы:   1 2

Piero ©   (2005-12-06 10:33:00) 

Как сделать таймер в TTheard


Piero   (2005-12-06 11:32:00) [21]

и почему оконных сообщений, я хочу обойтись одним потоком


Piero   (2005-12-06 11:31:00) [22]

Что такое  цикл ожидания/выборки/диспетчеризации оконных сообщений,
и как его делать

я могу сделать так:
while ... do
begin
 sleep(1000);
  ...
end;

Ну здесь таймер уже, действетельно не нужен


Digitman   (2005-12-06 11:27:00) [23]


> Reindeer Moss Eater ©   (06.12.05 11:24) [13]


на вкус и цвет, как говорится) .. ну сам знаешь

мало ли зачем он автору ! ну вот нужен ему таймер - что ж тут плохого ?


Reindeer Moss Eater   (2005-12-06 11:24:00) [24]

А если будет какой-то цикл, то таймер-то становится не нужен вообще.


Digitman   (2005-12-06 11:23:00) [25]


> значит ты не дописал пример?


я ответил в точности на твой вопрос, так как он был тобой поставлен


> нужно перехватывать wm_timer


не нужно ничего "перехватывать" - нужен обычный цикл ожидания/выборки/диспетчеризации оконных сообщений


Piero   (2005-12-06 11:21:00) [26]

значит ты не дописал пример?
нужно перехватывать wm_timer


Digitman   (2005-12-06 11:12:00) [27]


> TimerEventHandler - не срабатывает


он и с не-nil не будет "срабатывать", потому что цикл диспетчеризации сообщений нужен


Digitman   (2005-12-06 11:10:00) [28]


> с nil - не работает


ой врешь)


Piero   (2005-12-06 11:10:00) [29]

Таймер создается

FTimer := TTimer.Create(nil);
FTimer.Interval:=100;
Ftimer.Enabled:=true;
FTimer.OnTimer := TimerEventHandler;

но TimerEventHandler - не срабатывает


Digitman   (2005-12-06 11:08:00) [30]


> в форме я бы передал nil, а в потоке?


а какая принципиальная разница  ?

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


Piero   (2005-12-06 11:06:00) [31]

Не посмотрел последний пост, но с nil - не работает


Piero   (2005-12-06 11:05:00) [32]

Собственно в этом и была проблемма, в форме я бы передал nil, а в потоке?


Digitman   (2005-12-06 11:04:00) [33]

да что угодно)... хоть тот же nil ..


Piero   (2005-12-06 11:01:00) [34]

А в качестве Owner, что я должен передовать в  TTimer.Create(..)?


Digitman   (2005-12-06 10:40:00) [35]

например, так:

TMyThread = class(TThread)
..
 FTimer: Timer;
..
 procedure TimerEventHandler(Sender: TObject);
 procedure Execute; override;
..
end;

..

procedure TMyThread.TimerEventHandler(Sender: TObject);
begin
.. do something here ...
end;

procedure TMyThread.Execute;
begin
..
 FTimer := TTimer.Create(..);
 try
   FTimer.OnTimer := TimerEventHandler;
..
 finally
   FTimer.Free;
 end;
..
end;


Reindeer Moss Eater   (2005-12-06 10:38:00) [36]

Что значит сделать?
Он уже сделан.
Класс TTimer


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо