Форум: "Основная";
Текущий архив: 2004.02.25;
Скачать: [xml.tar.bz2];
Внизкак узнать, сколько осталось времени до события 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.033 c