Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.25;
Скачать: CL | DM;

Вниз

как узнать, сколько осталось времени до события onTimer   Найти похожие ветки 

 
Alex732   (2004-02-11 11:01) [0]

Подскажите, Subj...

Есть таймер... по событию таймера onTimer отрабатывает определенная процедура... Хочу выводить, сколько времени осталось до события примерно в таком виде: Panel1.Caption := "Отключение произойдет через 10 секунд"
Как вычислить, сколько осталось времени?


 
alex_*** ©   (2004-02-11 11:11) [1]

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


 
Fay ©   (2004-02-11 11:12) [2]

Круто! 8)


 
alex_*** ©   (2004-02-11 11:23) [3]

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


 
alex732   (2004-02-11 11:26) [4]

Зачем еще один таймер? Вычислили скока осталось, а потом Panel1.Caption := "Отключение произойдет через " + Sec_ + " секунд";


 
alex_*** ©   (2004-02-11 11:29) [5]

когда вычислили? когда пришло последнее событие от таймера?


 
Amoeba + PVOzerski   (2004-02-11 11:35) [6]

В событие OnTimer вставить GetTickCount, сохранять результат. Таким образом, в любой момент мы можем узнать две вещи: интервал таймера и время на момент предыдущего события onTimer. Остальное очевидно.


 
alex732   (2004-02-11 11:38) [7]

Всем спасибо... Проблема устранена :-) Сделал следующим образом:

procedure TConnec.FormActivate(Sender: TObject);
begin
i := 10
Timer1.Interval := 1000;
Timer1.Enabled := true;
end;

procedure TConnec.Timer1Timer(Sender: TObject);
begin
i := i - 1;
Panel1.Caption := "Отключение произойдет через " + inttostr(i) + " секунд";
if i = 0 then
begin
Timer1.Enabled := false;
.... процедура, которая должна отработать ....
end;
end;


 
alex_*** ©   (2004-02-11 11:44) [8]

блин... а в чем проблема-то была? я-то думал что таймер у тебя раз минуту или там в 10 мин. срабатывал и нужно было узнать сколько времени осталось до след. срабатывания...

p.s.

procedure TConnec.FormActivate(Sender: TObject);
begin
i := 10
Timer1.Interval := 1000;
Timer1.Enabled := true;
end;


и на каждом переключении на форму будем ловить FormActivate?


 
Anatoly Podgoretsky ©   (2004-02-11 12:15) [9]

alex732 (11.02.04 11:26) [4]
А кто будет выдавать управление на анализ остатка?
Нужен другой таймер или цикл опроса.


 
Alex732   (2004-02-11 23:56) [10]

2Alex_***
<<блин... а в чем проблема-то была? я-то думал что таймер у тебя раз минуту или там в 10 мин. срабатывал и нужно было узнать сколько времени осталось до след. срабатывания...
А какая разница? Если 1 раз в 10 минут, то i := 10 * 60... и дальше по тексту...

2Anatoly Podgoretsky
Управление на анализ остатка будет выдавать реакция на событие таймера onTimer...


 
Anatoly Podgoretsky ©   (2004-02-12 00:01) [11]

Alex732 (11.02.04 23:56) [10]
К этому и призываю, нечто внешнее по отношению к таймеру, а когда произошло событие, то остаток уже равен нулю.


 
Юрий Зотов ©   (2004-02-12 01:23) [12]

Нужен просто-напросто счетчик тиков таймера. Декрементирующий.



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

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

Наверх




Память: 0.49 MB
Время: 0.03 c
7-80314
Vitaly Grobshtein
2003-12-04 11:52
2004.02.25
Отключить темы WinXP


6-80072
Term!
2003-12-22 09:50
2004.02.25
Как узнать IP подключенных к IIS компов?


1-79778
VID
2004-02-11 03:01
2004.02.25
TWebBrowser::Проблемы


3-79592
nataliK
2004-02-02 16:14
2004.02.25
Query результат запроса выдает ##


3-79667
Dedushka_Mazai
2004-01-30 13:59
2004.02.25
как отслеживать мёртвые коннекты?