Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.02;
Скачать: 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 вся ветка

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

Наверх




Память: 0.47 MB
Время: 0.016 c
14-2281
Дмитрий_Б
2004-01-09 14:48
2004.02.02
Вопрос к 1С-никам


1-2120
AGN
2004-01-14 17:58
2004.02.02
ShellExecute


4-2401
andruxin
2003-11-27 14:51
2004.02.02
TListView. Как сделать элементы разными цветами.


9-1945
TEST
2003-07-17 20:58
2004.02.02
Delphi поддерживает .mb, .ma, .lwo, xsi?


14-2366
ИМХО
2004-01-01 12:21
2004.02.02
USA: как живешь, Америка?