Вниз
Скачать: CL | DM;

Таймер   Найти похожие ветки 

← →
Сережа   (2004-01-20 21:38) [0]

Я уже задавал этот вопрос, но меня не совсем поняли!
procedure TForm1.Button2Click(Sender: TObject);
begin
...
timer1.Enabled:=true;
x2:=60; Y2:=168;
....
timer1.Enabled:=true;
X2:=84; Y2:=280;
....
end;
Дело в том, что я хочу, чтобы на время работы таймера процедура останавилась, и продолжит свою работу только после выполнения таймера! т.е. в процедуре указываются координаты, а таймер обеспечивает медленное передвижение в эту точку, после чего задаются следующие координаты, вкл. таймер и так далее. Мне порекомендовали поставить процедуру Sleep(..) но она остонавливает все действия... таймер не работает. Пробовал поставить цикл:
timer1.Enabled:=true;
x2:=60; Y2:=168;
repeat
until(timer1.Enabled=false)
timer1.Enabled:=true;
X2:=84; Y2:=280;
но он тоже висит! что делать? Помогите, пожалуйста, начинающему! Или можно это сделать как-нибудь по-другому?


← →
Юрий Федоров ©   (2004-01-20 21:51) [1]

Таймер (если имеется в виду событие OnTimer) срабатывает только тогда, когда обработчики сообщений окна отработали, и окно может обрабатывать следующие сообщения из очереди.
То есть так не получится.

Реорганизуй схему вызовов :-)


← →
Palladin ©   (2004-01-20 22:01) [2]

в
repeat
until(timer1.Enabled=false)

вставь Application.ProcessMessages


← →
такой же циник как и все   (2004-01-21 00:16) [3]

А почему тебе обработчик твоих координат не вынести из Button.Click, написать отдельную процедуру, которая при запуске себя делает Timer1.Enabled:=false, потом твои расчеты, а потом Timer1.Enabled:=true, тогда и таймер будет вызывать эту же процедуру послен всех своих действий и все будет отлично


← →
REP ©   (2004-01-21 08:55) [4]

А зачем вообще таймер нужен, если действия программы должны быть остановлены? Смысл?


← →
Ozone ©   (2004-01-21 09:17) [5]

Используй потоки и процедуру WaitForSingleObject( т.е. тебе нужно синхронизовать работу таймера и потока).



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.015 c
6-2243
scr
2003-11-26 15:37
2004.02.02
TidSMTP (INDY) и прокси!


1-2092
Марат
2004-01-19 14:37
2004.02.02
HotKey


3-1982
NickNaz
2003-12-17 11:22
2004.02.02
Фильтр


7-2394
DimaK
2003-11-14 14:55
2004.02.02
Системное время


6-2253
An@toliK
2003-11-26 13:17
2004.02.02
Непрерывный поток данных через сеть...




   Наверх